rvc (RAPIDS version converter) is a tool built with Golang that automatically
convert a RAPIDS version (CalVer) to a ucx-py version (SemVer) and vice versa.
In June 2021, RAPIDS moved from a SemVer versioning to a CalVer versioning.
As ucx-py is expected to be upstreamd to ucx, it is not possible to adopt
a CalVer versioning for it, as the versions would have been greater than the
current ucx version. rvc is designed to ease the conversion between both
versioning.
rvc is published in two different ways:
- As an AWS Lambda instance
- As a CLI binary
rvc is deployed as an AWS Lambda instance using the Serverless framework.
The deployment configuration can be seen in the
serverless.yaml file.
A deployment will happen automatically anytime a change is merged to the main branch.
See the deploy.yaml
GitHub Action for more details.
rvc is deployed at this endpoint: https://version.gpuci.io
Two different routes are exposed:
- https://version.gpuci.io/ucx-py/{version}: Converts a
ucx-pyversion to aRAPIDSversion - https://version.gpuci.io/rapids/{version}: Converts a
RAPIDSversion to aucx-pyversion
Examples:
$ RAPIDS_VER=$(curl -sL https://version.gpuci.io/ucx-py/0.22)
$ echo "${RAPIDS_VER}"
21.10$ UCX_PY_VER=$(curl -sL https://version.gpuci.io/rapids/21.12)
$ echo "${UCX_PY_VER}"
0.23rvc is also available as a CLI binary.
Download the latest binary from GitHub and add it to one of your PATH directories:
wget https://github.com/rapidsai/rvc/releases/latest/download/rvc -O rvc
chmod +x rvc
sudo mv ./rvc /usr/local/binUsage of rvc:
-rapids string
Rapids version
-ucx-py string
ucx-py version
-rapids and ucx-py options are mutually exclusive.
Examples:
$ rvc -rapids 21.12
0.23$ rvc -ucx-py 0.22
21.10If you need to add a new version mapping, you only need to update this map.
Requirements:
- golang >= 1.17
- serverless
A Makefile with some useful rules is provided:
make build: Run unit tests and build CLI and Serverless binariesmake test: Run unit testsmake build_cli: Build CLI binarymake build_serverless: Build Serverless binarymake fmt: Format codemake coverage: Compute and display tests coverage