I bought a DGX Spark
... and I'm using the expense of the device to hold myself accountable to learning, and I figured a blog would be a great way to record what I've learned and share with others who may be on a similar journey.
A little background about me:
I know relatively little about AI. I've become a moderate user of ChatGPT on a daily basis, and I have been playing around with running local AI models. So, I'm a capable user of AI but I haven't done much peeking under the hood. I'm primarily a Windows 11 user, but I prefer my MacBook Pro over any PC for an excellent device experience. I also use WSL for running Linux development tools frequently and run a home sever hosted on Unraid (I may talk more about that later). My day job is a development director for a large software company and I work in the games industry.
On to the Spark:
Today, Christmas came early and my DGX Spark was delivered two days before it was scheduled. I did the unboxing and plugged it in. Man is this device is tiny, somewhere between the old and new Mac Mini. I bought the NVIDIA model, and it's also incredibly good looking.
I decided to plug it in to HDMI and a keyboard rather than remote setup. I'll be using the device predominately remotely and I wanted to see what the desktop experience was like. Setup was straight forward. I was impressed that it allowed me to put a Bluetooth mouse in paring mode to use the mouse during setup. Windows doesn't even do that. After a lengthily update and reboot chain, I got logged in to the Ubuntu desktop. At that point, it looks like a vanilla Ubuntu desktop. This is where I decided to move back to my primary machine and continue.
Remote development:
I don't have much experience with remote development. I have a lot of experience building locally and deploying to devices, but not so much building and debugging on a remote machine. That's what I want to do here. I want to author and orchestrate AI workloads on my desktop while running them on the Spark. NVIDIA points me to their NVIDIA Sync desktop app as the easiest way, so I decided to start there. I went to install the NVIDIA sync tool and install failed with:
could not set ssh config file: could not update default config file: open C:\Users\<user>\.ssh\config: The system cannot find the path specified.
It turns out that the installer expects that you were already all set up for using SSH to some other host and doesn't want to create the requisite config files (just append to them). ChatGPT got me unblocked immediately with:
mkdir $env:USERPROFILE\.ssh
New-Item -Path $env:USERPROFILE\.ssh\config -ItemType File -Force
Many ways to do it, but basically, create an empty config file under the user directory's .ssh sub-directory. The first of many minor stumbling blocks. But after that, install completed and I can use NVIDIA sync to launch the DGX dashboard, run a terminal, or run VSCode. It's worth noting that VSCode was included because the NVIDIA sync installer had noticed I had it installed. I install that ahead of time with:
I was impressed that starting VSCode on the remote path through NVIDIA Sync just worked. It took a bit to install the server the first time, but once it's launched it's just like using VSCode locally. My VSCode was already configured to use github copilot. I get access through work but my experience with it is very positive and I do recommend it.
Comments
Post a Comment