Node RAPIDS

GPU-accelerated data-science libraries on Node.js

C++TypeScriptCUDA
Node RAPIDS

During my internship on NVIDIA’s RAPIDS data visualization team, I worked on Node RAPIDS. It’s a set of Node.js native addons that bring the RAPIDS GPU-accelerated data science libraries to JavaScript. Until then, RAPIDS was mostly only usable from Python.

What I worked on:

  • Bindings for cuDF, from the TypeScript API down through the C++ native layer
  • The SQL module, which binds the BlazingSQL GPU SQL engine to Node.js
  • Multi-GPU queries, with one worker process per GPU communicating over UCX
  • GPUDirect Storage support, loading data from disk straight into GPU memory

Querying Wikipedia

As a demo for the SQL module, we loaded all of English Wikipedia (~16 GB) and ran SQL queries over it from Node.js. A full scan took ~40 seconds on two GPUs, and ~14 seconds once GPUDirect Storage was in. I wrote about how it all works in this post.