JupyterLab GPU Dashboards

A JupyterLab extension for displaying dashboards of GPU usage.


Built with JupyterLab and Bokeh Server

What's here

This repository contains two sets of code:

  • Python code defining a Bokeh Server application that generates the dashboards
    in the jupyterlab_nvdashboard/ directory
  • TypeScript code integrating these dashboards into JupyterLab in the src/

You should be able to modify only the Python code to edit the dashboards
without modifying the TypeScript code.


  • JupyterLab 1.0
  • bokeh
  • pynvml


This extension has a server-side (Python) and a client-side (Typescript) component,
and we must install both in order for it to work.

To install the server-side component, run the following in your terminal

pip install jupyterlab-nvdashboard

To install the client-side component, run

jupyter labextension install jupyterlab-nvdashboard


To install the server-side part, run the following in your terminal from the repository directory:

pip install -e .

In order to install the client-side component (requires node version 8 or later), run the following in the repository directory:

jlpm install
jlpm run build
jupyter labextension install .

To rebuild the package and the JupyterLab app:

jlpm run build
jupyter lab build


This application is distributed as two subpackages.

The JupyterLab frontend part is published to npm,
and the server-side part to PyPI.

Releases for both packages are done with the jlpm tool, git and Travis CI.

Note: Package versions are not prefixed with the letter v. You will need to disable this.

$ jlpm config set version-tag-prefix ""

Making a release

$ jlpm version [--major|--minor|--patch]  # updates package.json and creates git commit and tag
$ git push && git push --tags  # pushes tags to GitHub which triggers Travis CI to build and deploy