RAPIDS Anywhere with Tailscale

My Mobile Device has an RTX 3090

Josh Patterson
RAPIDS AI
5 min readSep 24, 2020

--

By Josh Patterson and Ayush Dattagupta

Do you remember your first LAN-party? Lugging your big rig around to show off your glowing green NVIDIA GPU while besting your friends in Warcraft III! I do. For a while, I was top 100 in 2v2 with my best friend in the US East. I’ll never forget the look on my dad’s face when one of my friends carried a massive cooler into our house one Friday night. The audacity of him to blatantly walk beer in through the front door my dad thought. Nope… it was just his gaming rig.

Fast forward nearly two decades, and I still know a few people who carry their gaming rigs with them, but luckily, laptops have improved dramatically so this is becoming a relic of the past. Pair NVIDIA laptops with GeForce Now and there’s little reason to carry your rig anywhere. But what about data scientists?

Data sizes are growing. RAPIDS users are growing, and people always ask me, what laptop should I buy for RAPIDS. My new answer…Get a 3090!

Today, NVIDIA launched a massive GPU, the GeForce RTX 3090, and the first 24+ GB GPU with a price/GB of less than $70. When NVIDIA launched the Titan RTX I thought $100/GB was a steal…but the 3090 is ridiculous. Normally, we focus RAPIDS blogs on the software, but I’d be remiss to not talk about the value of cheap big memory, and the 3090 has this in spades. As we discuss often in RAPIDS, we have more than enough FLOPS in any GPU — what we really need is more memory and random access bandwidth. The more memory you have per GPU, the less data movement, and the larger problem you can work on. In almost all cases excluding embarrassingly parallel operations, one GPU with more memory is more efficient than two GPUs communicating over PCIe. Thus, the RTX 3090 has an amazing value.

In this blog, we’ll demonstrate how you can run RAPIDS workflows from your laptop (or any mobile device really) by connecting to a remote workstation using Tailscale.

With Tailscale, it’s easy to run accelerated workflows wherever you might be, even if you don’t have your GPUs with you. We’ll walk through how we did it on an Apple Macbook laptop. Just for fun, we even tested it with an Apple iPad!

Get Up and Running in 6 Easy Steps

  1. Install Tailscale on both devices
  2. Obtain static IP address
  3. Connect to the remote workstation using this static IP address
  4. Install RAPIDS
  5. Spin up a Jupyterlab session
  6. Connect to Jupyter

Install Tailscale on Both Devices

Using Tailscale is simple. First, set up Tailscale on both the workstation and laptop. We followed their setup guide, which worked smoothly. Because the remote workstation is running Ubuntu, we first followed the Ubuntu installation instructions.

We install at the terminal and then authenticate by going to the link provided.

The laptop is running macOS, so we then followed the Mac installation instructions and downloaded the app.

Obtain IP Address

Once Tailscale is set up on both machines, you should have access to the static IP address assigned to the remote workstation from the Tailscale web admin console. Or, you can get this info from the Tailscale application on macOS.

Connect to Workstation

Next, connect to the remote workstation using this static IP address with `ssh user@{workstation-tailscale-ip}`.

Install RAPIDS

For the purposes of this blog, we use an HP Z4 workstation running Ubuntu 18.04 with dual NVIDIA Quadro RTX 8000 GPUs. Our workstation is already set up with NVIDIA drivers and CUDA, so we can easily run RAPIDS workflows when we’re physically there.

Once you’re connected to the workstation, choose your preferred way of installing RAPIDS libraries following the instruction on rapids.ai.

Spin Up a Jupyterlab Session

With the libraries installed, you can spin up a Jupyterlab session in whatever way you prefer.

Connect to Jupyter

With the Jupyterlab session up and running, you can open any browser on your laptop and connect to Jupyter using {workstation-tailscale-ip}:8888 (or whatever port number was assigned by JupyterLab)

That’s it! Now we can kick off some work and monitor the GPU dashboard while it runs. Below, we use both GPUs for K-Means clustering on some simulated data.

It’s never been easier to get started with GPUs and RAPIDS, and with Tailscale, you can kick off RAPIDS workflows from anywhere. Now, you’ll never have separation anxiety from your data science GPU again. For more info on cool trends in GPU data science, follow @RAPIDSai on Twitter, join us on Slack, or jump in on Github.

--

--

Josh Patterson
RAPIDS AI

Working on something new. HIRING! Ex NVIDIA, White House PIF, Accenture Labs. Started RAPIDS.ai.