/node-rapids

GPU-accelerated data science and visualization in node

Primary LanguageTypeScriptApache License 2.0Apache-2.0

  node-rapids

node-rapids is collection of node native C++ addons for the RAPIDS libraries:

Additionally, node-rapids includes limited bindings to:

See the API docs for detailed information about each module.

Setup

System/CUDA/GPU requirements

  • 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.

Notebooks

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.

Demos

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.

Bindings Progress

You can review BINDINGS.md to see which bindings have been completed for each of the RAPIDS libraries.

FAQs

What is the .env file used for and what variables can be set in it?

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.

License

This work is licensed under the Apache-2.0 license.