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 aWebGL2RenderingContext
via 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:nteract
node-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.