node-rapids is collection of node native C++ addons for the RAPIDS libraries:
@rapidsai/rmm- Bindings to the RAPIDS Memory Manager@rapidsai/cudf- Bindings to the RAPIDS GPU DataFrame@rapidsai/cugraph- Bindings to the RAPIDS Graph Analytics Library@rapidsai/cuspatial- Bindings to the RAPIDS Accelerated GIS Library
Additionally, node-rapids includes limited bindings to:
@nvidia/cuda- Interact with GPUs via the CUDA Runtime APIs@nvidia/glfw- Create platform-agnostic native windows with OpenGL contexts via GLFW@nvidia/webgl- Provides aWebGL2RenderingContextvia OpenGL ES@rapidsai/blazingsql- Bindings to the BlazingSQL engine
See the API docs for detailed information about each module.
- Ubuntu 16.04+ (other Linuxes may work, but untested)
- Docker 19.03+ (optional)
- docker-compose v1.28.5+ (optional)
- CUDAToolkit 10.1+
- NVIDIA driver 418.39+
- Pascal architecture (Compute Capability >=6.0) or better
To get started building and using node-rapids, follow the setup instructions.
The node-rapids modules are not yet available on npm. They must be built locally or in our Docker environments.
We've included a container for launching nteract/desktop with access to locally built node-rapids modules:
# Build the development and nteract containers (only necessary once)
yarn docker:build:devel && yarn docker:build:nteract
# Compile the TypeScript and C++ modules inside the development container
yarn docker:run:devel bash -c 'yarn && yarn build'
# Start a containerized nteract/desktop with the source tree as Docker volume mounts
yarn docker:run:nteractnode-rapids packages are built with N-API via the node-addon-api library.
The demos module contains a bunch of examples which use a combination of node-rapids modules to re-implement some browser+webgl based examples. Some of them include:
After you build the modules, run yarn demo from the command line to choose the demo you want to run.
You can review BINDINGS.md to see which bindings have been completed for each of the RAPIDS libraries.
The .env file is used by the docker-compose.yml file when building and running the development containers (i.e. yarn docker:build:devel and yarn docker:run:devel). Any variables in the docker-compose.yml file can be set in the .env file. The .env.sample file includes some common variables that may be set in the .env file.
This work is licensed under the Apache-2.0 license.
