Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency clean up #137

Merged
merged 9 commits into from
Oct 7, 2022
Merged
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
31 changes: 20 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,19 @@

## Summary

This provides C++ and Python bindings to cuFile, which enables GPUDirect Storage (or GDS).
This provides C++ and Python bindings to cuFile, which enables GPUDirect Storage (GDS).
KvikIO also works efficiently when GDS isn't available and can read/write both host and
device data seamlessly. KvikIO

### Features

* Object Oriented API
* Exception handling
* Zarr reader
* Object Oriented API.
* Exception handling.
* Concurrent reads and writes using an internal thread pool.
* Non-blocking API.
* Python Zarr reader.
* Handle both host and device IO seamlessly.
* Provides Python bindings to [nvCOMP](https://github.com/NVIDIA/nvcomp).

## Requirements

Expand All @@ -17,19 +23,22 @@ installed (v11.4+) and a working compiler toolchain (C++17 and cmake).

### C++

The C++ bindings are header-only and depends on CUDA Driver and Runtime API.
In order to build and run the example code, CMake is required.
The C++ bindings are header-only and depends on the CUDA Driver API.
In order to build and run the example code, CMake and the CUDA Runtime
API is required.

### Python

The Python packages depends on the following packages:
The Python package depends on the following packages:

* Cython
* Pip
* Setuptools
* cython
* pip
* setuptools
* scikit-build

For testing:
For nvCOMP, benchmarks, examples, and tests:
* pytest
* numpy
* cupy

## Install
Expand Down
6 changes: 4 additions & 2 deletions conda/recipes/kvikio/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,16 @@ requirements:
- libkvikio {{ version }}
run:
- python
- cupy
- numpy >=1.20
- cupy >=9.5.0
- zarr
madsbk marked this conversation as resolved.
Show resolved Hide resolved
- {{ pin_compatible('cudatoolkit', max_pin='x', min_pin='x') }}

test:
requires:
- pytest
imports:
- kvikio
- kvikio.cufile

about:
home: http://rapids.ai/
Expand Down
9 changes: 6 additions & 3 deletions python/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ skip=

[options]
packages = find:
install_requires =
numpy
madsbk marked this conversation as resolved.
Show resolved Hide resolved
python_requires = >=3.8,<3.10
python_requires = >=3.8

[options.extras_require]
nvcomp =
numpy >=1.20
cupy >=9.5.0
1 change: 1 addition & 0 deletions python/tests/test_benchmarks.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

benchmarks_path = Path(os.path.realpath(__file__)).parent / ".." / "benchmarks"

pytest.importorskip("cupy")
pytest.importorskip("dask")


Expand Down
4 changes: 4 additions & 0 deletions python/tests/test_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
from importlib import import_module
from pathlib import Path

import pytest

examples_path = Path(os.path.realpath(__file__)).parent / ".." / "examples"


def test_hello_world(tmp_path, monkeypatch):
"""Test examples/hello_world.py"""
pytest.importorskip("cupy") # `examples/hello_world.py` requires CuPy

monkeypatch.syspath_prepend(str(examples_path))
import_module("hello_world").main(tmp_path / "test-file")
4 changes: 2 additions & 2 deletions python/tests/test_nvcomp.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved.
# See file LICENSE for terms.

import cupy
import numpy as np
import pytest

np = pytest.importorskip("numpy")
cupy = pytest.importorskip("cupy")
madsbk marked this conversation as resolved.
Show resolved Hide resolved
cudf = pytest.importorskip("cudf")
kvikio = pytest.importorskip("kvikio")
libnvcomp = pytest.importorskip("kvikio.nvcomp")
Expand Down