diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index 0e95832dddd..b53ce1f224e 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -20,7 +20,7 @@ dependencies: - cuda-nvcc - cuda-nvrtc-dev - cuda-nvtx-dev -- cuda-python>=12.6.2,<13.0a0 +- cuda-python>=12.9.1,<13.0a0 - cuda-sanitizer-api - cuda-version=12.9 - cupy>=12.0.0 @@ -54,8 +54,8 @@ dependencies: - nbsphinx - ninja - notebook -- numba-cuda>=0.14.0,<0.15.0a0 -- numba>=0.59.1,<0.62.0a0 +- numba-cuda>=0.18.0,<0.19.0a0 +- numba>=0.60.0,<0.62.0a0 - numpy>=1.23,<3.0a0 - numpydoc - nvidia-ml-py @@ -69,7 +69,6 @@ dependencies: - pre-commit - pyarrow>=14.0.0,<20.0.0a0 - pydata-sphinx-theme>=0.15.4 -- pynvjitlink>=0.0.0a0 - pynvml>=12.0.0,<13.0.0a0 - pytest - pytest-benchmark diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index e96b8d81953..4d1af2746ac 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -20,7 +20,7 @@ dependencies: - cuda-nvcc - cuda-nvrtc-dev - cuda-nvtx-dev -- cuda-python>=12.6.2,<13.0a0 +- cuda-python>=12.9.1,<13.0a0 - cuda-sanitizer-api - cuda-version=12.9 - cupy>=12.0.0 @@ -55,8 +55,8 @@ dependencies: - nbsphinx - ninja - notebook -- numba-cuda>=0.14.0,<0.15.0a0 -- numba>=0.59.1,<0.62.0a0 +- numba-cuda>=0.18.0,<0.19.0a0 +- numba>=0.60.0,<0.62.0a0 - numpy>=1.23,<3.0a0 - numpydoc - nvidia-ml-py @@ -70,7 +70,6 @@ dependencies: - pre-commit - pyarrow>=14.0.0,<20.0.0a0 - pydata-sphinx-theme>=0.15.4 -- pynvjitlink>=0.0.0a0 - pynvml>=12.0.0,<13.0.0a0 - pytest - pytest-benchmark diff --git a/conda/recipes/cudf/recipe.yaml b/conda/recipes/cudf/recipe.yaml index 38e32b5c1f2..3f69e8dcd2e 100644 --- a/conda/recipes/cudf/recipe.yaml +++ b/conda/recipes/cudf/recipe.yaml @@ -55,7 +55,7 @@ requirements: - rapids-build-backend >=0.4.0,<0.5.0.dev0 - scikit-build-core >=0.10.0 - dlpack >=0.8,<1.0 - - numba-cuda >=0.14.0,<0.15.0a0 + - numba-cuda >=0.18.0,<0.19.0a0 - libcudf =${{ version }} - pylibcudf =${{ version }} - rmm =${{ minor_version }} @@ -70,8 +70,8 @@ requirements: - typing_extensions >=4.0.0 - pandas >=2.0,<2.4.0dev0 - cupy >=12.0.0 - - numba-cuda >=0.14.0,<0.15.0a0 - - numba >=0.59.1,<0.62.0a0 + - numba-cuda >=0.18.0,<0.19.0a0 + - numba >=0.60.0,<0.62.0a0 - numpy >=1.23,<3.0a0 - pyarrow>=14.0.0,<20.0.0a0 - libcudf =${{ version }} @@ -79,13 +79,7 @@ requirements: - ${{ pin_compatible("rmm", upper_bound="x.x") }} - fsspec >=0.6.0 - cuda-cudart - # Needed by Numba for CUDA support - - cuda-nvcc-impl - # TODO: Add nvjitlink here - # xref: https://github.com/rapidsai/cudf/issues/12822 - - cuda-nvrtc - - cuda-python >=12.6.2,<13.0a0 - - pynvjitlink + - cuda-python >=12.9.1,<13.0a0 - if: linux and x86_64 then: - libcufile diff --git a/conda/recipes/pylibcudf/recipe.yaml b/conda/recipes/pylibcudf/recipe.yaml index 2d2cf0a630f..6ba6e189d0f 100644 --- a/conda/recipes/pylibcudf/recipe.yaml +++ b/conda/recipes/pylibcudf/recipe.yaml @@ -72,7 +72,7 @@ requirements: - libcudf =${{ version }} - ${{ pin_compatible("rmm", upper_bound="x.x") }} - fsspec >=0.6.0 - - cuda-python >=12.6.2,<13.0a0 + - cuda-python >=12.9.1,<13.0a0 - nvtx >=0.2.1 - packaging ignore_run_exports: diff --git a/dependencies.yaml b/dependencies.yaml index 7b240f5bc84..504a2b81f96 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -486,9 +486,19 @@ dependencies: - cython>=3.0.3 build_python_cudf: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda] packages: - - &numba_cuda numba-cuda>=0.14.0,<0.15.0a0 + - &numba_cuda numba-cuda>=0.18.0,<0.19.0a0 + specific: + - output_types: [requirements, pyproject] + matrices: + - matrix: + cuda: "12.*" + packages: + - &numba_cuda_cu12 numba-cuda[cu12]>=0.18.0,<0.19.0a0 + - matrix: # Fallback for no matrix + packages: + - *numba_cuda_cu12 pyarrow_run: common: - output_types: [conda] @@ -646,14 +656,14 @@ dependencies: matrices: - matrix: {cuda: "12.*"} packages: &run_pylibcudf_packages_all_cu12 - - cuda-python>=12.6.2,<13.0a0 + - cuda-python>=12.9.1,<13.0a0 - {matrix: null, packages: *run_pylibcudf_packages_all_cu12} run_cudf: common: - output_types: [conda, requirements, pyproject] packages: - cachetools - - &numba numba>=0.59.1,<0.62.0a0 + - &numba numba>=0.60.0,<0.62.0a0 - nvtx>=0.2.1 - packaging - rich @@ -671,18 +681,13 @@ dependencies: matrices: - matrix: {cuda: "12.*"} packages: &run_cudf_packages_all_cu12 - - cuda-python>=12.6.2,<13.0a0 + - cuda-python>=12.9.1,<13.0a0 - {matrix: null, packages: *run_cudf_packages_all_cu12} - - output_types: conda - matrices: - - matrix: {cuda: "12.*"} - packages: - - &pynvjitlink_unsuffixed pynvjitlink>=0.0.0a0 - output_types: [requirements, pyproject] matrices: - matrix: {cuda: "12.*"} packages: - - &numba_cuda_cu12 numba-cuda[cu12]>=0.14.0,<0.15.0a0 + - *numba_cuda_cu12 - matrix: # Fallback for no matrix packages: - *numba_cuda_cu12 @@ -692,15 +697,9 @@ dependencies: cuda: "12.*" cuda_suffixed: "true" packages: - - pynvjitlink-cu12>=0.0.0a0 - nvidia-cuda-nvcc-cu12 - nvidia-cuda-nvrtc-cu12 - - matrix: - cuda: "12.*" - cuda_suffixed: "false" - packages: &run_cudf_cu12_unsuffixed - - *pynvjitlink_unsuffixed - - {matrix: null, packages: *run_cudf_cu12_unsuffixed} + - {matrix: null, packages: []} run_cudf_polars: common: - output_types: [conda, requirements, pyproject] @@ -782,9 +781,9 @@ dependencies: matrices: - matrix: {dependencies: "oldest"} packages: - - numba==0.59.1 - - numba-cuda==0.14.0 + - numba==0.60.0 - pandas==2.0.* + - numba-cuda==0.18.0 - matrix: {dependencies: "latest"} packages: - pandas==2.3.1 diff --git a/python/cudf/cudf/core/udf/strings_lowering.py b/python/cudf/cudf/core/udf/strings_lowering.py index 4cb755785e8..61f69cb8c71 100644 --- a/python/cudf/cudf/core/udf/strings_lowering.py +++ b/python/cudf/cudf/core/udf/strings_lowering.py @@ -267,7 +267,9 @@ def decref_managed_udf_string(context, builder, sig, args): context, builder, value=managed_ptr ) fnty = ir.FunctionType(ir.VoidType(), [ir.PointerType(ir.IntType(8))]) - fn = cgutils.get_or_insert_function(builder.module, fnty, "NRT_decref") + fn = cgutils.get_or_insert_function( + builder.module, fnty, "NRT_decref_managed_string" + ) builder.call(fn, (managed.meminfo,)) return diff --git a/python/cudf/pyproject.toml b/python/cudf/pyproject.toml index 8e770112a67..6cb02397aed 100644 --- a/python/cudf/pyproject.toml +++ b/python/cudf/pyproject.toml @@ -19,12 +19,12 @@ license = { text = "Apache-2.0" } requires-python = ">=3.10" dependencies = [ "cachetools", - "cuda-python>=12.6.2,<13.0a0", + "cuda-python>=12.9.1,<13.0a0", "cupy-cuda12x>=12.0.0", "fsspec>=0.6.0", "libcudf==25.10.*,>=0.0.0a0", - "numba-cuda[cu12]>=0.14.0,<0.15.0a0", - "numba>=0.59.1,<0.62.0a0", + "numba-cuda[cu12]>=0.18.0,<0.19.0a0", + "numba>=0.60.0,<0.62.0a0", "numpy>=1.23,<3.0a0", "nvtx>=0.2.1", "packaging", @@ -32,7 +32,6 @@ dependencies = [ "pyarrow>=14.0.0,<20.0.0a0,!=17.0.0; platform_machine=='aarch64'", "pyarrow>=14.0.0,<20.0.0a0; platform_machine=='x86_64'", "pylibcudf==25.10.*,>=0.0.0a0", - "pynvjitlink>=0.0.0a0", "rich", "rmm==25.10.*,>=0.0.0a0", "typing_extensions>=4.0.0", @@ -126,7 +125,7 @@ requires = [ "libcudf==25.10.*,>=0.0.0a0", "librmm==25.10.*,>=0.0.0a0", "ninja", - "numba-cuda>=0.14.0,<0.15.0a0", + "numba-cuda[cu12]>=0.18.0,<0.19.0a0", "pylibcudf==25.10.*,>=0.0.0a0", "rmm==25.10.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. diff --git a/python/cudf/udf_cpp/shim.cu b/python/cudf/udf_cpp/shim.cu index 535358bfc9a..d6f84a23299 100644 --- a/python/cudf/udf_cpp/shim.cu +++ b/python/cudf/udf_cpp/shim.cu @@ -75,6 +75,14 @@ __device__ NRT_MemInfo* make_meminfo_for_new_udf_string(udf_string* udf_str) } } +// Special decref called only by python after transferring ownership of output strings +// Must reset dtor with one that is part of the current module +extern "C" __device__ void NRT_decref_managed_string(NRT_MemInfo* mi) +{ + mi->dtor = udf_str_dtor; + NRT_decref(mi); +} + extern "C" __device__ int len(int* nb_retval, void const* str) { auto sv = reinterpret_cast(str); diff --git a/python/pylibcudf/pyproject.toml b/python/pylibcudf/pyproject.toml index 85d8693b1c3..0c7f89111e3 100644 --- a/python/pylibcudf/pyproject.toml +++ b/python/pylibcudf/pyproject.toml @@ -18,7 +18,7 @@ authors = [ license = { text = "Apache-2.0" } requires-python = ">=3.10" dependencies = [ - "cuda-python>=12.6.2,<13.0a0", + "cuda-python>=12.9.1,<13.0a0", "libcudf==25.10.*,>=0.0.0a0", "nvtx>=0.2.1", "packaging",