Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 0 additions & 60 deletions .github/workflows/test-gpu-dev.yml

This file was deleted.

70 changes: 46 additions & 24 deletions .github/workflows/test-gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,43 +22,65 @@ jobs:
- uses: flying-sheep/check@v1
with:
success: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'run-gpu-ci') }}
test:
name: GPU Tests

get-envs:
runs-on: ubuntu-latest
needs: check
outputs:
envs: ${{ steps.get-envs.outputs.envs }}
steps:
- uses: actions/checkout@v5
with:
filter: blob:none
fetch-depth: 0
- uses: astral-sh/setup-uv@v6
with:
enable-cache: false
- id: get-envs
run: |
ENVS_JSON=$(uvx hatch env show --json | jq -c '
to_entries
| map(
select(.key | startswith("hatch-test"))
| {
name: .key,
python: .value.python | sub("3[.]13"; "3.13.3"),
}
)')
echo "envs=${ENVS_JSON}" | tee $GITHUB_OUTPUT
test:
needs: get-envs
runs-on: "cirun-aws-gpu--${{ github.run_id }}"
timeout-minutes: 30
strategy:
matrix:
env: ${{ fromJson(needs.get-envs.outputs.envs) }}
env:
ENV_NAME: ${{ matrix.env.name }}

defaults:
run:
shell: bash -el {0}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
filter: blob:none

- name: Nvidia SMI sanity check
run: nvidia-smi

- uses: mamba-org/setup-micromamba@v2
- uses: astral-sh/setup-uv@v6
with:
environment-file: ci/environment.yml
init-shell: >-
bash
cache-environment: true
post-cleanup: 'all'
python-version: ${{ matrix.env.python }}

- name: Install rapids-singlecell
run: pip install -e .[test]
- name: Install dependencies
run: uvx hatch -v env create ${{ matrix.env.name }}

- name: Pip list
run: pip list
- name: Run tests
run: uvx hatch run ${{ matrix.env.name }}:run -- -p no:randomly

- name: Run test
run: pytest

- name: Remove 'run-gpu-ci' Label
if: always()
uses: actions-ecosystem/action-remove-labels@v1
remove-label:
name: Remove 'run-gpu-ci' Label
runs-on: ubuntu-latest
if: ${{ always() && github.event_name == 'pull_request' }}
steps:
- uses: actions-ecosystem/action-remove-labels@v1
if: contains(github.event.pull_request.labels.*.name, 'run-gpu-ci')
with:
labels: 'run-gpu-ci'
github_token: ${{ secrets.GITHUB_TOKEN }}
3 changes: 1 addition & 2 deletions docs/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ The default installer doesn't cover RAPIDS nor CuPy. Information on how to insta

If you want to use RAPIDS new PyPI packages, the whole library with all dependencies can be install with:
```
pip install 'rapids-singlecell[rapids11]' --extra-index-url=https://pypi.nvidia.com #CUDA11.X
pip install 'rapids-singlecell[rapids12]' --extra-index-url=https://pypi.nvidia.com #CUDA12
pip install 'rapids-singlecell[rapids]' --extra-index-url=https://pypi.nvidia.com #CUDA12

```
It is important to ensure that the CUDA environment is set up correctly so that RAPIDS and CuPy can locate the necessary libraries.
Expand Down
4 changes: 2 additions & 2 deletions docs/release-notes/0.13.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
* make `dcg.aucell` faster using a single rank pass algorithm {pr}`448` {smaller}`S Dicks`
* make FDR calculation faster and more scalable offering a new CPU and updated GPU path for `dcg`. {pr}`450` {smaller}`S Dicks`


```{rubric} Bug fixes
```
* Updates `tl.embedding_density` to work with `rapids-25.10` {pr}`464` {smaller}`S Dicks`

* All for UMAP to run on larger than int32 connectivity graphs{pr}`465` {smaller}`S Dicks`
```{rubric} Misc
```
* Deprecate CUDA-11 and Update CI to use UV {pr}`441` {smaller}`S Dicks`
30 changes: 27 additions & 3 deletions hatch.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
installer = "uv"
features = [ "dev" ]

[envs.hatch-test]
features = [ "test", "rapids12" ]

[envs.docs]
features = [ "doc" ]
scripts.build = "sphinx-build -M html docs docs/_build {args}"
Expand All @@ -14,3 +11,30 @@ scripts.clean = "git clean -fXd docs"
extra_index_urls = [
"https://pypi.nvidia.com",
]

[envs.hatch-test]
default-args = [ ]
features = [ "test", "rapids12" ]

overrides.matrix.deps.env-vars = [
{ if = [
"dev",
], key = "UV_PRERELEASE", value = "allow" },
]

overrides.matrix.deps.python = [
{ if = [ "stable" ], value = "3.12" },
{ if = [ "dev" ], value = "3.13" },
]

overrides.matrix.deps.extra-dependencies = [
{ if = [
"dev",
], value = "anndata @ git+https://github.com/scverse/anndata.git" },
{ if = [
"dev",
], value = "scanpy @ git+https://github.com/scverse/scanpy.git" },
]

[[envs.hatch-test.matrix]]
deps = [ "stable", "dev" ]
9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ dependencies = [
]

[project.optional-dependencies]
rapids11 = [ "cupy-cuda11x", "cudf-cu11==25.04.*", "cuml-cu11==25.04.*", "cugraph-cu11==25.04.*" ]
rapids12 = [ "cupy-cuda12x", "cudf-cu12==25.04.*", "cuml-cu12==25.04.*", "cugraph-cu12==25.04.*" ]
rapids12 = [ "cupy-cuda12x", "cudf-cu12==25.08.*", "cuml-cu12==25.08.*", "cugraph-cu12==25.08.*" ]
rapids = [ "rapids_singlecell[rapids12]" ]
doc = [
"sphinx>=4.5.0",
"sphinx-copybutton",
Expand All @@ -54,6 +54,11 @@ test = [
"igraph",
]

dev = [
"hatch-vcs",
"pre-commit",
]

[project.urls]
Documentation = "https://rapids-singlecell.readthedocs.io"
Source = "https://github.com/scverse/rapids_singlecell"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def _get_colsum_kernel(dtype):
v = A[row * cols + col];
}

// warplevel sum over the 32 rows in this tilecolumn
// warp-level sum over the 32 rows in this tile-column
for (int off = 16; off > 0; off >>= 1) {
v += __shfl_down_sync(0xffffffff, v, off);
}
Expand Down
Loading