https://github.com/cupy/cupy-release-tools
Tools for CuPy Release
https://github.com/cupy/cupy-release-tools
cupy
Last synced: 11 months ago
JSON representation
Tools for CuPy Release
- Host: GitHub
- URL: https://github.com/cupy/cupy-release-tools
- Owner: cupy
- Created: 2018-01-29T05:27:10.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2025-07-08T01:56:57.000Z (11 months ago)
- Last Synced: 2025-07-08T21:24:18.023Z (11 months ago)
- Topics: cupy
- Language: Python
- Homepage:
- Size: 706 KB
- Stars: 8
- Watchers: 7
- Forks: 12
- Open Issues: 16
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
cupy-release-tools
==================
Tools to automate the CuPy release process.
This tool is used to create both source distribution (``sdist``) and wheels.
The release process consists of 3 steps:
1. Build
2. Verify
3. Publish
Requirements
------------
Linux
~~~~~
* For ``sdist`` and CUDA (x86_64) wheel build, run the tool on Linux (x86_64). NVIDIA GPU + NVIDIA Container Toolkit are required for Verify step.
* For CUDA (aarch64) wheel build, run the tool on Linux (x86_64 with QEMU (aarch64), aarch64, or Tegra). NVIDIA GPU + NVIDIA Container Toolkit is required for Verify step.
* For ROCm wheel build, run the tool on Linux (x86_64). AMD GPU is required for Verify step.
Notes:
* To ensure the reproducibility of builds, the build environment is isolated by Docker.
Windows
~~~~~~~
* Windows 8+ (x86_64)
* Python, CUDA and Visual C++ are required. Versions depend on the target of the wheel.
Notes:
* Be aware that Windows tools in this repository is expected to be run on isolated virtual machine.
Especially note that the tool directly installs the dependency libraries to ``%CUDA_PATH%``.
* ``sdist`` build on Windows is not supported.
Quick Guide
-----------
For Linux builds, you can use the ``build.sh`` shell script that wraps the Build and Verify steps.
::
# Prepare source tree
git clone --recursive https://github.com/cupy/cupy.git
# Build & verify a sdist (using Python 3.10)
./build.sh sdist 3.10
# Build & verify a wheel for CUDA 11.0 + Python 3.8
./build.sh 11.0 3.8
For Windows, or if you need some more detailed configuration, see the sections below to manually run the tool.
Build
-----
This tool can build wheels for Linux & Windows for supported CUDA/ROCm x Python variants defined in ``dist_config.py``.
Building Distributions
~~~~~~~~~~~~~~~~~~~~~~
**IMPORTANT**: Always make sure to use a fresh, just-git-cloned CuPy source tree!
To build a sdist, use the following command.
``--source`` is a path to the source tree.
::
./dist.py --action build --target sdist --python 3.6.0 --source path/to/cupy_repo
To build a wheel, use the following command.
This example builds wheel of CuPy with CUDA 10.0 for Python 3.8.
::
./dist.py --action build --target wheel-linux --python 3.8 --cuda 10.0 --source path/to/cupy_repo
Use ``--target wheel-win`` for Windows build.
Use ``--cuda rocm-5.0`` for ROCm (AMD GPU) build.
The resulting asset (sdist/wheel) will be generated to the current directory.
Working Directory (Linux)
~~~~~~~~~~~~~~~~~~~~~~~~~
It is safe to run multiple ``dist.py`` at a time.
Each time you run the tool, a dedicated temporary directory (``/tmp/cupy-dist-XXXXX``) is created.
The temporary directory is shared with the builder docker container as a volume.
The working directory will be removed after the build.
Verify
------
The tool can be used to confirm that the built distribution can work on multiple environments.
Verifying Distributions
~~~~~~~~~~~~~~~~~~~~~~~
To verify the built distribution, use the following command:
::
./dist.py --action verify --target wheel-linux --python 3.8 --cuda 10.0 --dist cupy_cuda100-9.0.0b2-cp38-cp38-manylinux_x86_64.whl --test release-tests/common --test release-tests/cudnn --test release-tests/nccl
You can specify test suites directory to ``--test`` argument.
``release-tests`` is a minimal test cases handy for final check before release.
Of course, you can also run the full unit test suites from CuPy source tree.
Publish
-------
Use ``twine`` command to upload distributions.