From f919baad5e6428b5815ba60dd489b63d6928816c Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 18 Nov 2024 13:51:22 -0800 Subject: [PATCH 01/10] Update cython test structure --- cuda_bindings/tests/cython/build_tests.sh | 4 ++++ .../{tests_cython => tests/cython}/test_ccuda.pyx | 2 ++ .../{tests_cython => tests/cython}/test_ccudart.pyx | 2 ++ .../{tests_cython => tests/cython}/test_cython.py | 0 .../cython}/test_interoperability_cython.pyx | 9 +++++---- cuda_bindings/tests/pytest.ini | 2 ++ 6 files changed, 15 insertions(+), 4 deletions(-) create mode 100755 cuda_bindings/tests/cython/build_tests.sh rename cuda_bindings/{tests_cython => tests/cython}/test_ccuda.pyx (98%) rename cuda_bindings/{tests_cython => tests/cython}/test_ccudart.pyx (99%) rename cuda_bindings/{tests_cython => tests/cython}/test_cython.py (100%) rename cuda_bindings/{tests_cython => tests/cython}/test_interoperability_cython.pyx (99%) create mode 100644 cuda_bindings/tests/pytest.ini diff --git a/cuda_bindings/tests/cython/build_tests.sh b/cuda_bindings/tests/cython/build_tests.sh new file mode 100755 index 0000000000..d18a6aaa05 --- /dev/null +++ b/cuda_bindings/tests/cython/build_tests.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cd "$(dirname "$0")" +CPLUS_INCLUDE_PATH=$CUDA_HOME/include:$CPLUS_INCLUDE_PATH cythonize -3 -i test_*.pyx diff --git a/cuda_bindings/tests_cython/test_ccuda.pyx b/cuda_bindings/tests/cython/test_ccuda.pyx similarity index 98% rename from cuda_bindings/tests_cython/test_ccuda.pyx rename to cuda_bindings/tests/cython/test_ccuda.pyx index 0d90ba9098..a2ade6056f 100644 --- a/cuda_bindings/tests_cython/test_ccuda.pyx +++ b/cuda_bindings/tests/cython/test_ccuda.pyx @@ -5,6 +5,8 @@ # this software. Any use, reproduction, disclosure, or distribution of # this software and related documentation outside the terms of the EULA # is strictly prohibited. + +# distutils: language=c++ from libc.string cimport ( memset, memcmp diff --git a/cuda_bindings/tests_cython/test_ccudart.pyx b/cuda_bindings/tests/cython/test_ccudart.pyx similarity index 99% rename from cuda_bindings/tests_cython/test_ccudart.pyx rename to cuda_bindings/tests/cython/test_ccudart.pyx index b228661c8d..aaa2f5d7a1 100644 --- a/cuda_bindings/tests_cython/test_ccudart.pyx +++ b/cuda_bindings/tests/cython/test_ccudart.pyx @@ -5,6 +5,8 @@ # this software. Any use, reproduction, disclosure, or distribution of # this software and related documentation outside the terms of the EULA # is strictly prohibited. + +# distutils: language=c++ from libc.string cimport ( memset, memcmp diff --git a/cuda_bindings/tests_cython/test_cython.py b/cuda_bindings/tests/cython/test_cython.py similarity index 100% rename from cuda_bindings/tests_cython/test_cython.py rename to cuda_bindings/tests/cython/test_cython.py diff --git a/cuda_bindings/tests_cython/test_interoperability_cython.pyx b/cuda_bindings/tests/cython/test_interoperability_cython.pyx similarity index 99% rename from cuda_bindings/tests_cython/test_interoperability_cython.pyx rename to cuda_bindings/tests/cython/test_interoperability_cython.pyx index 5c58e8eae3..89e36a4c65 100644 --- a/cuda_bindings/tests_cython/test_interoperability_cython.pyx +++ b/cuda_bindings/tests/cython/test_interoperability_cython.pyx @@ -6,16 +6,17 @@ # this software and related documentation outside the terms of the EULA # is strictly prohibited. -# TODO: update to new module once the old ones are removed, we use the -# tests to cover backward compatibility. -import pytest +# distutils: language=c++ +from libc.stdlib cimport calloc, free import cuda.cuda as cuda import cuda.cudart as cudart import numpy as np +import pytest +# TODO: update to new module once the old ones are removed, we use the +# tests to cover backward compatibility. cimport cuda.ccuda as ccuda cimport cuda.ccudart as ccudart -from libc.stdlib cimport calloc, free def supportsMemoryPool(): diff --git a/cuda_bindings/tests/pytest.ini b/cuda_bindings/tests/pytest.ini new file mode 100644 index 0000000000..76f66832c6 --- /dev/null +++ b/cuda_bindings/tests/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +norecursedirs = cython From c6cac853f2e862c5da49e405e7ba0e43da8766bb Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 18 Nov 2024 15:35:37 -0800 Subject: [PATCH 02/10] Add .bat script for Windows - Requires CUDA_HOME to be set - Requires MSVC properly setup (i.e. PATH to Windows Kit SDK) --- cuda_bindings/tests/cython/build_tests.bat | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 cuda_bindings/tests/cython/build_tests.bat diff --git a/cuda_bindings/tests/cython/build_tests.bat b/cuda_bindings/tests/cython/build_tests.bat new file mode 100644 index 0000000000..6353a28aeb --- /dev/null +++ b/cuda_bindings/tests/cython/build_tests.bat @@ -0,0 +1,2 @@ +set CL=%CL% /I%CUDA_HOME%\\include +cythonize -3 -i test_*.pyx From 9f707e11482eb9650a27f6cdcd5e2fc771a09457 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 18 Nov 2024 15:46:03 -0800 Subject: [PATCH 03/10] Remove side-effect on running cmd --- cuda_bindings/tests/cython/build_tests.bat | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cuda_bindings/tests/cython/build_tests.bat b/cuda_bindings/tests/cython/build_tests.bat index 6353a28aeb..258bd81343 100644 --- a/cuda_bindings/tests/cython/build_tests.bat +++ b/cuda_bindings/tests/cython/build_tests.bat @@ -1,2 +1 @@ -set CL=%CL% /I%CUDA_HOME%\\include -cythonize -3 -i test_*.pyx +cmd /V /C "set CL=%CL% /I%CUDA_HOME%\\include && cythonize -3 -i test_*.pyx" From 9b423f7103906b359ca8bb774b2c18b0e484ad5e Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Wed, 20 Nov 2024 12:28:21 -0800 Subject: [PATCH 04/10] Tentative README overhaul --- README.md | 85 ++++++++++++----------------------------- cuda_bindings/README.md | 25 +++++++----- 2 files changed, 40 insertions(+), 70 deletions(-) diff --git a/README.md b/README.md index 0072e062ca..e1676ee023 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,39 @@ # CUDA-Python -CUDA Python is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. Checkout the [Overview](https://nvidia.github.io/cuda-python/overview.html) for the workflow and performance results. +CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python. It consists of multiple components: -## Installing +[cuda.core](https://nvidia.github.io/cuda-python/cuda-core/latest): Pythonic access to CUDA Runtime and other core functionalities +[cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest): Low-level Python bindings to CUDA C APIs +[cuda.cooperative](https://nvidia.github.io/cccl/cuda_cooperative/): Pythonic exposure of CUB cooperative algorithms +[cuda.parallel](https://nvidia.github.io/cccl/cuda_parallel/): Pythonic exposure of Thrust parallel algorithms -CUDA Python can be installed from: +For access to NVIDIA Math Libraries, please refer to [nvmath-python](https://docs.nvidia.com/cuda/nvmath-python/latest). -* PYPI -* Conda (nvidia channel) -* Source builds +CUDA Python is currently undergoing an overhaul to improve existing and bring up new components. All of the previously available functionalities from the cuda-python package will continue to be available, please refer to the [cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest) documentation for installation guide and further detail. -There're differences in each of these options that are described further in [Installation](https://nvidia.github.io/cuda-python/install.html) documentation. Each package will guarantee minor version compatibility. +## CUDA-Python as a metapackage -## Runtime Dependencies +CUDA-Python is structured to become a metapackage that contains a collection of subpackages. Each subpackage is versioned independently, allowing installation of each component as needed. -CUDA Python is supported on all platforms that CUDA is supported. Specific dependencies are as follows: +### Subpackage: cuda.core -* Driver: Linux (450.80.02 or later) Windows (456.38 or later) -* CUDA Toolkit 12.0 to 12.6 +The cuda.core package offers idiomatic, pythonic access to CUDA Runtime and other functionalities. -Only the NVRTC redistributable component is required from the CUDA Toolkit. [CUDA Toolkit Documentation](https://docs.nvidia.com/cuda/index.html) Installation Guides can be used for guidance. Note that the NVRTC component in the Toolkit can be obtained via PYPI, Conda or Local Installer. +The goals are to -### Supported Python Versions +1. provide **idiomatic (“pythonic”)** access to CUDA Driver/Runtime +2. focus on **developer productivity** by ensuring end-to-end CUDA development can be performed quickly and entirely in Python +3. **avoid homegrown** Python abstractions for CUDA for new Python GPU libraries starting from scratch +4. **ease** developer **burden of maintaining** and catching up with latest CUDA features +5. **flatten the learning curve** for current and future generations of CUDA developers -CUDA Python follows [NEP 29](https://numpy.org/neps/nep-0029-deprecation_policy.html) for supported Python version guarantee. +### Subpackage: cuda.bindings -Before dropping support, an issue will be raised to look for feedback. +The cuda.bindings package is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. -Source builds work for multiple Python versions, however pre-build PyPI and Conda packages are only provided for a subset: +Available interfaces are -* Python 3.9 to 3.12 - -## Testing - -### Requirements - -Latest dependencies can be found in [requirements.txt](https://github.com/NVIDIA/cuda-python/blob/main/requirements.txt). - -### Unit-tests - -You can run the included tests with: - -``` -python -m pytest tests/ -``` - -### Benchmark - -You can run benchmark only tests with: - -``` -python -m pytest --benchmark-only benchmarks/ -``` - -### Samples - -You can run the included tests with: - -``` -python -m pytest examples/ -``` - -## Examples - -CUDA Samples rewriten using CUDA Python are found in `examples`. - -Custom extra included examples: - -- `examples/extra/jit_program_test.py`: Demonstrates the use of the API to compile and - launch a kernel on the device. Includes device memory allocation / - deallocation, transfers between host and device, creation and usage of - streams, and context management. -- `examples/extra/numba_emm_plugin.py`: Implements a Numba External Memory Management - plugin, showing that this CUDA Python Driver API can coexist with other - wrappers of the driver API. +* CUDA Driver +* CUDA Runtime +* NVRTC +* nvJitLink diff --git a/cuda_bindings/README.md b/cuda_bindings/README.md index a47346b2fe..0671a132b2 100644 --- a/cuda_bindings/README.md +++ b/cuda_bindings/README.md @@ -1,6 +1,6 @@ -# CUDA-Python +# `cuda.bindings`: Low-level CUDA interfaces -CUDA Python is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. Checkout the [Overview](https://nvidia.github.io/cuda-python/overview.html) for the workflow and performance results. +CUDA Python is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. Checkout the [Overview](https://nvidia.github.io/cuda-python/cuda-bindings/latest/overview.html) for the workflow and performance results. ## Installing @@ -10,7 +10,7 @@ CUDA Python can be installed from: * Conda (nvidia channel) * Source builds -There're differences in each of these options that are described further in [Installation](https://nvidia.github.io/cuda-python/install.html) documentation. Each package will guarantee minor version compatibility. +Differences between these options are described in [Installation](https://nvidia.github.io/cuda-python/cuda-bindings/latest/install.html) documentation. Each package guarantees minor version compatibility. ## Runtime Dependencies @@ -31,11 +31,15 @@ Source builds work for multiple Python versions, however pre-build PyPI and Cond * Python 3.9 to 3.12 -## Testing +## Testing (Cython) -### Requirements +Cython tests are located under `tests/cython`. -Latest dependencies can be found in [requirements.txt](https://github.com/NVIDIA/cuda-python/blob/main/requirements.txt). +Latest dependencies can be found in [requirements.txt](https://github.com/NVIDIA/cuda-python/blob/main/cuda_bindings/requirements.txt). + +## Testing (Python) + +Latest dependencies can be found in [requirements.txt](https://github.com/NVIDIA/cuda-python/blob/main/cuda_bindings/requirements.txt). ### Unit-tests @@ -48,6 +52,9 @@ To run unit-tests against installed builds: pytest tests/ ``` +### Unit-tests + + ### Benchmark To run unit-tests against local builds: @@ -72,14 +79,14 @@ pytest benchmark/ ## Examples -CUDA Samples rewriten using CUDA Python are found in `examples`. +[CUDA Samples](https://github.com/NVIDIA/cuda-samples/tree/master) rewriten using CUDA Python are found in `examples`. Custom extra included examples: -- `examples/extra/jit_program_test.py`: Demonstrates the use of the API to compile and +* `examples/extra/jit_program_test.py`: Demonstrates the use of the API to compile and launch a kernel on the device. Includes device memory allocation / deallocation, transfers between host and device, creation and usage of streams, and context management. -- `examples/extra/numba_emm_plugin.py`: Implements a Numba External Memory Management +* `examples/extra/numba_emm_plugin.py`: Implements a Numba External Memory Management plugin, showing that this CUDA Python Driver API can coexist with other wrappers of the driver API. From 4602778ca303ac369ce818a652a1218c49aaa927 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 25 Nov 2024 10:12:27 -0800 Subject: [PATCH 05/10] Update README --- README.md | 10 +++--- cuda_bindings/README.md | 70 +++++++++++++++++++---------------------- 2 files changed, 38 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index e1676ee023..fd65a9fcc5 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,10 @@ CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python. It consists of multiple components: -[cuda.core](https://nvidia.github.io/cuda-python/cuda-core/latest): Pythonic access to CUDA Runtime and other core functionalities -[cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest): Low-level Python bindings to CUDA C APIs -[cuda.cooperative](https://nvidia.github.io/cccl/cuda_cooperative/): Pythonic exposure of CUB cooperative algorithms -[cuda.parallel](https://nvidia.github.io/cccl/cuda_parallel/): Pythonic exposure of Thrust parallel algorithms +* [cuda.core](https://nvidia.github.io/cuda-python/cuda-core/latest): Pythonic access to CUDA Runtime and other core functionalities +* [cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest): Low-level Python bindings to CUDA C APIs +* [cuda.cooperative](https://nvidia.github.io/cccl/cuda_cooperative/): Pythonic exposure of CUB cooperative algorithms +* [cuda.parallel](https://nvidia.github.io/cccl/cuda_parallel/): Pythonic exposure of Thrust parallel algorithms For access to NVIDIA Math Libraries, please refer to [nvmath-python](https://docs.nvidia.com/cuda/nvmath-python/latest). @@ -31,7 +31,7 @@ The goals are to The cuda.bindings package is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. -Available interfaces are +The list of available interfaces are: * CUDA Driver * CUDA Runtime diff --git a/cuda_bindings/README.md b/cuda_bindings/README.md index 0671a132b2..54a98dedc2 100644 --- a/cuda_bindings/README.md +++ b/cuda_bindings/README.md @@ -31,57 +31,41 @@ Source builds work for multiple Python versions, however pre-build PyPI and Cond * Python 3.9 to 3.12 -## Testing (Cython) - -Cython tests are located under `tests/cython`. +## Testing Latest dependencies can be found in [requirements.txt](https://github.com/NVIDIA/cuda-python/blob/main/cuda_bindings/requirements.txt). -## Testing (Python) +Multiple testing options are available: -Latest dependencies can be found in [requirements.txt](https://github.com/NVIDIA/cuda-python/blob/main/cuda_bindings/requirements.txt). +* Cython Unit Tests +* Python Unit Tests +* Samples +* Benchmark -### Unit-tests +### Python Unit Tests -To run unit-tests against local builds: -``` -python -m pytest tests/ -``` -To run unit-tests against installed builds: -``` -pytest tests/ -``` +Responsible for validating different binding usage patterns. Unit test `test_kernelParams.py` is particularly special since it demonstrates various approaches in setting up kernel launch parameters. -### Unit-tests +To run these tests: +* `python -m pytest tests/` against local builds +* `pytest tests/` against installed package +### Cython Unit Tests -### Benchmark +Cython tests are located under `tests/cython` and need to be built. Furthermore they need CUDA Toolkit headers matching the major-minor of CUDA Python. To build them: -To run unit-tests against local builds: -``` -python -m pytest --benchmark-only benchmark/ -``` -To run unit-tests against installed builds: -``` -pytest --benchmark-only benchmark/ -``` +1. Setup environment variable `CUDA_HOME` with the path to the CUDA Toolkit installation. +2. Run `build_tests` script located in `test/cython` appropriate to your platform. This will both Cythonize the tests and build them. -### Samples +To run these tests: +* `python -m pytest tests/cython/` against local builds +* `pytest tests/cython/` against installed package -To run unit-tests against local builds: -``` -python -m pytest benchmark/ -``` -To run unit-tests against installed builds: -``` -pytest benchmark/ -``` - -## Examples +### Samples -[CUDA Samples](https://github.com/NVIDIA/cuda-samples/tree/master) rewriten using CUDA Python are found in `examples`. +Various [CUDA Samples](https://github.com/NVIDIA/cuda-samples/tree/master) that were rewritten using CUDA Python can be found in `examples`. -Custom extra included examples: +In addition, extra examples are included: * `examples/extra/jit_program_test.py`: Demonstrates the use of the API to compile and launch a kernel on the device. Includes device memory allocation / @@ -90,3 +74,15 @@ Custom extra included examples: * `examples/extra/numba_emm_plugin.py`: Implements a Numba External Memory Management plugin, showing that this CUDA Python Driver API can coexist with other wrappers of the driver API. + +To run these samples: +* `python -m pytest tests/cython/` against local builds +* `pytest tests/cython/` against installed package + +### Benchmark (WIP) + +Benchmarks were used for performance analysis during initial release of CUDA Python. Today they need to be updated the 12.x toolkit and are work in progress. + +The intended way to run these benchmarks was: +* `python -m pytest --benchmark-only benchmark/` against local builds +* `pytest --benchmark-only benchmark/` against installed package From cf8e7b4c062d696aadf259ea28e2b369df57fa9a Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 25 Nov 2024 10:17:47 -0800 Subject: [PATCH 06/10] Formatting --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fd65a9fcc5..4f6900fbb2 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,9 @@ CUDA Python is currently undergoing an overhaul to improve existing and bring up CUDA-Python is structured to become a metapackage that contains a collection of subpackages. Each subpackage is versioned independently, allowing installation of each component as needed. -### Subpackage: cuda.core +### Subpackage: `cuda.core` -The cuda.core package offers idiomatic, pythonic access to CUDA Runtime and other functionalities. +The `cuda.core` package offers idiomatic, pythonic access to CUDA Runtime and other functionalities. The goals are to @@ -27,9 +27,9 @@ The goals are to 4. **ease** developer **burden of maintaining** and catching up with latest CUDA features 5. **flatten the learning curve** for current and future generations of CUDA developers -### Subpackage: cuda.bindings +### Subpackage: `cuda.bindings` -The cuda.bindings package is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. +The `cuda.bindings` package is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. The list of available interfaces are: From fde425ad1c528e2cc8b180d89d1dcb6acbb12940 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 25 Nov 2024 10:18:46 -0800 Subject: [PATCH 07/10] Spelling --- cuda_bindings/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cuda_bindings/README.md b/cuda_bindings/README.md index 54a98dedc2..a2f4c4b4c3 100644 --- a/cuda_bindings/README.md +++ b/cuda_bindings/README.md @@ -48,7 +48,7 @@ Responsible for validating different binding usage patterns. Unit test `test_ker To run these tests: * `python -m pytest tests/` against local builds -* `pytest tests/` against installed package +* `pytest tests/` against installed packages ### Cython Unit Tests @@ -59,7 +59,7 @@ Cython tests are located under `tests/cython` and need to be built. Furthermore To run these tests: * `python -m pytest tests/cython/` against local builds -* `pytest tests/cython/` against installed package +* `pytest tests/cython/` against installed packages ### Samples @@ -77,7 +77,7 @@ In addition, extra examples are included: To run these samples: * `python -m pytest tests/cython/` against local builds -* `pytest tests/cython/` against installed package +* `pytest tests/cython/` against installed packages ### Benchmark (WIP) @@ -85,4 +85,4 @@ Benchmarks were used for performance analysis during initial release of CUDA Pyt The intended way to run these benchmarks was: * `python -m pytest --benchmark-only benchmark/` against local builds -* `pytest --benchmark-only benchmark/` against installed package +* `pytest --benchmark-only benchmark/` against installed packages From 800aa26279f8934d7e57434e69c069bbd2e04f10 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 25 Nov 2024 10:20:51 -0800 Subject: [PATCH 08/10] Consistency --- cuda_bindings/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cuda_bindings/README.md b/cuda_bindings/README.md index a2f4c4b4c3..5f996f9786 100644 --- a/cuda_bindings/README.md +++ b/cuda_bindings/README.md @@ -52,7 +52,7 @@ To run these tests: ### Cython Unit Tests -Cython tests are located under `tests/cython` and need to be built. Furthermore they need CUDA Toolkit headers matching the major-minor of CUDA Python. To build them: +Cython tests are located in `tests/cython` and need to be built. Furthermore they need CUDA Toolkit headers matching the major-minor of CUDA Python. To build them: 1. Setup environment variable `CUDA_HOME` with the path to the CUDA Toolkit installation. 2. Run `build_tests` script located in `test/cython` appropriate to your platform. This will both Cythonize the tests and build them. @@ -63,7 +63,7 @@ To run these tests: ### Samples -Various [CUDA Samples](https://github.com/NVIDIA/cuda-samples/tree/master) that were rewritten using CUDA Python can be found in `examples`. +Various [CUDA Samples](https://github.com/NVIDIA/cuda-samples/tree/master) that were rewritten using CUDA Python are located in `examples`. In addition, extra examples are included: From a7bd72508bb35f4c6455a1674e2ede46e3248bf6 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 25 Nov 2024 10:22:24 -0800 Subject: [PATCH 09/10] Capitalization --- cuda_bindings/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuda_bindings/README.md b/cuda_bindings/README.md index 5f996f9786..85852068b2 100644 --- a/cuda_bindings/README.md +++ b/cuda_bindings/README.md @@ -55,7 +55,7 @@ To run these tests: Cython tests are located in `tests/cython` and need to be built. Furthermore they need CUDA Toolkit headers matching the major-minor of CUDA Python. To build them: 1. Setup environment variable `CUDA_HOME` with the path to the CUDA Toolkit installation. -2. Run `build_tests` script located in `test/cython` appropriate to your platform. This will both Cythonize the tests and build them. +2. Run `build_tests` script located in `test/cython` appropriate to your platform. This will both cythonize the tests and build them. To run these tests: * `python -m pytest tests/cython/` against local builds From 0fbb9e80ca9912a157a1b5260e8d75fad10a2c67 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Mon, 25 Nov 2024 12:50:29 -0800 Subject: [PATCH 10/10] Capitalize --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4f6900fbb2..d2b5241b2f 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,11 @@ The `cuda.core` package offers idiomatic, pythonic access to CUDA Runtime and ot The goals are to -1. provide **idiomatic (“pythonic”)** access to CUDA Driver/Runtime -2. focus on **developer productivity** by ensuring end-to-end CUDA development can be performed quickly and entirely in Python -3. **avoid homegrown** Python abstractions for CUDA for new Python GPU libraries starting from scratch -4. **ease** developer **burden of maintaining** and catching up with latest CUDA features -5. **flatten the learning curve** for current and future generations of CUDA developers +1. Provide **idiomatic (“pythonic”)** access to CUDA Driver/Runtime +2. Focus on **developer productivity** by ensuring end-to-end CUDA development can be performed quickly and entirely in Python +3. **Avoid homegrown** Python abstractions for CUDA for new Python GPU libraries starting from scratch +4. **Ease** developer **burden of maintaining** and catching up with latest CUDA features +5. **Flatten the learning curve** for current and future generations of CUDA developers ### Subpackage: `cuda.bindings`