|
| 1 | +# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. |
| 2 | +# |
| 3 | +# SPDX-License-Identifier: Apache-2.0 |
| 4 | + |
| 5 | +[workspace] |
| 6 | +channels = ["conda-forge"] |
| 7 | +platforms = ["linux-64", "linux-aarch64", "win-64"] |
| 8 | +preview = ["pixi-build"] |
| 9 | + |
| 10 | +[workspace.build-variants] |
| 11 | +python = ["3.10.*", "3.11.*", "3.12.*", "3.13.*", "3.14.*"] |
| 12 | + |
| 13 | +[dependencies] |
| 14 | +cuda-bindings = { path = "." } |
| 15 | +pip = "*" # installed to the workspace for convenience |
| 16 | + |
| 17 | +[feature.test.dependencies] |
| 18 | +pytest = ">=6.2.4" |
| 19 | +pytest-benchmark = ">=3.4.1" |
| 20 | +pyglet = ">=2.1.9" |
| 21 | +numpy = "*" |
| 22 | + |
| 23 | +[feature.cython-tests.dependencies] |
| 24 | +cython = "*" # for tests that exercise APIs from cython |
| 25 | +setuptools = "*" # for distutils |
| 26 | +gxx = "*" # to compile the generated code |
| 27 | +# These are necessary because running the Cython tests requires compiling |
| 28 | +# *after* the package is built, and the Cython tests depend on CUDA headers |
| 29 | +# transitively (through cuda-bindings) |
| 30 | +cuda-cudart-dev = "*" |
| 31 | +cuda-profiler-api = "*" |
| 32 | + |
| 33 | +[feature.cython-tests.target.linux-64.dependencies] |
| 34 | +cuda-crt-dev_linux-64 = "*" |
| 35 | + |
| 36 | +[feature.cython-tests.target.linux-aarch64.dependencies] |
| 37 | +cuda-crt-dev_linux-aarch64 = "*" |
| 38 | + |
| 39 | +[feature.cython-tests.target.win-64.dependencies] |
| 40 | +cuda-crt-dev_win-64 = "*" |
| 41 | + |
| 42 | +# For finding headers when building the Cython tests |
| 43 | +[feature.cython-tests.target.linux-64.activation.env] |
| 44 | +CUDA_HOME = "$CONDA_PREFIX/targets/x86_64-linux" |
| 45 | + |
| 46 | +[feature.cython-tests.target.linux-aarch64.activation.env] |
| 47 | +CUDA_HOME = "$CONDA_PREFIX/targets/sbsa-linux" |
| 48 | + |
| 49 | +[feature.cython-tests.target.win-64.activation.env] |
| 50 | +CUDA_HOME = '%CONDA_PREFIX%\Library' |
| 51 | + |
| 52 | +[feature.cu13.system-requirements] |
| 53 | +cuda = "13" |
| 54 | + |
| 55 | +[feature.cu13.dependencies] |
| 56 | +# TODO: make cuda-version a build-variant |
| 57 | +cuda-version = "13.*" |
| 58 | + |
| 59 | +[environments] |
| 60 | +cu13 = { features = ["cu13", "test", "cython-tests"], solve-group = "cu13" } |
| 61 | + |
| 62 | +# TODO: check if these can be extracted from pyproject.toml |
| 63 | +[package] |
| 64 | +name = "cuda-bindings" |
| 65 | +version = "13.0.2" |
| 66 | + |
| 67 | +[package.build] |
| 68 | +backend = { name = "pixi-build-python", version = "*" } |
| 69 | + |
| 70 | +[package.build.config] |
| 71 | +env = { CUDA_PYTHON_PARSER_CACHING = "1", CUDA_PYTHON_PARALLEL_LEVEL = "$(nproc)" } |
| 72 | +noarch = false |
| 73 | +compilers = ["c", "cxx"] |
| 74 | + |
| 75 | +[package.build.target.linux-64.config.env] |
| 76 | +CUDA_HOME = "$PREFIX/targets/x86_64-linux" |
| 77 | + |
| 78 | +[package.build.target.linux-aarch64.config.env] |
| 79 | +CUDA_HOME = "$PREFIX/targets/sbsa-linux" |
| 80 | + |
| 81 | +[package.build.target.win-64.config.env] |
| 82 | +CUDA_HOME = '%PREFIX%\Library' |
| 83 | + |
| 84 | +# TODO: revisit this |
| 85 | +# [package.build-dependencies] |
| 86 | +# ccache = "*" |
| 87 | + |
| 88 | +[package.host-dependencies] |
| 89 | +python = "*" |
| 90 | +pip = "*" |
| 91 | +setuptools = ">=77" |
| 92 | +cython = ">=3.1,<3.2" |
| 93 | +pyclibrary = ">=0.1.7" |
| 94 | +cuda-cudart-static = "*" |
| 95 | +cuda-nvrtc-dev = "*" |
| 96 | +cuda-profiler-api = "*" |
| 97 | +cuda-nvvm = "*" |
| 98 | + |
| 99 | +[package.target.linux-64.host-dependencies] |
| 100 | +cuda-crt-dev_linux-64 = "*" |
| 101 | +libcufile-dev = "*" |
| 102 | + |
| 103 | +[package.target.linux-aarch64.host-dependencies] |
| 104 | +cuda-crt-dev_linux-aarch64 = "*" |
| 105 | +libcufile-dev = "*" |
| 106 | + |
| 107 | +[package.target.win-64.host-dependencies] |
| 108 | +cuda-crt-dev_win-64 = "*" |
| 109 | + |
| 110 | +[package.run-dependencies] |
| 111 | +python = "*" |
| 112 | +cuda-pathfinder = ">=1.1,<2" |
| 113 | +cuda-bindings = { path = "." } |
| 114 | +libnvjitlink = "*" |
| 115 | +cuda-nvrtc = "*" |
| 116 | +cuda-nvvm = "*" |
| 117 | + |
| 118 | +[package.target.linux.run-dependencies] |
| 119 | +libcufile = "*" |
| 120 | + |
| 121 | +[target.linux.tasks.build-cython-tests] |
| 122 | +cmd = ["$PIXI_PROJECT_ROOT/tests/cython/build_tests.sh"] |
| 123 | + |
| 124 | +[target.linux.tasks.run-cython-tests] |
| 125 | +cmd = ["pytest", "$PIXI_PROJECT_ROOT/tests/cython/"] |
| 126 | +depends-on = [{ task = "build-cython-tests" }] |
| 127 | + |
| 128 | +[target.linux.tasks.test] |
| 129 | +cmd = ["pytest", "$PIXI_PROJECT_ROOT"] |
| 130 | +depends-on = [{ task = "run-cython-tests" }] |
0 commit comments