Adding GPUs to Docker Swarm and Running GPU-Enabled Services

Introduction This guide will walk you through the process of attaching GPUs to a Docker Swarm node and running services that can utilize these GPUs. This setup is particularly useful for running GPU-intensive workloads in a distributed environment. Assumptions You are running a recent version of Ubuntu (Noble 24.04 LTS in this case). You have NVIDIA drivers already installed (preferably the -server version). If not, follow the instructions at Ubuntu’s NVIDIA driver installation guide....

September 26, 2024 · 2 min · 422 words · Dylan Butler

App debugging not in prod

Building a Game Boy Advance emulator has gotten difficult, currently stuck on what appears to be I/O Registers not outputting their correct values and when a game is loaded in the gamepak, the device runs into a boot-loop. Investigating memory data and it’s meaning is difficult, converting binary data to something meaningful, then tracing that to another address if it’s a pointer and the cycle repeats. Doing these steps for every CPU cycle to investigate how data is changing is cumbersome and led to the project collecting dust for a few months as I gained the courage to dive into this....

June 6, 2024 · 3 min · 464 words · Dylan Butler

Self-Dependant, Self-Hosted GitHub Runners

On the journey of self hosting, one thing I want to get automated and running locally was my deployments. Having all of my services defined as Docker Compose services would be ideal. Wanting to keep this configuration held in GitHub, alongside my other code, this raises the next question, how do I propagate these changes to my local machine and redeploy my services? My initial thoughts were to try to find a CI/CD platform that was able to be ran as a self-hosted setup, and also support Docker deployments, specifically supporting Compose as I wanted to keep my configs simple and familiar....

June 5, 2024 · 5 min · 991 words · Dylan Butler

Go range over funcs

Following discussions and read throughs on the following proposal, I hadn’t fully understood what the use case for this was or what the value of being able to range over functions would be. spec: add range over int, range over func · Issue #61405 · golang/go Following discussion on #56413, I propose to add two new types that a for-range statement can range over: integers and functions. In the spec, the table that begins the section would have a few mor…...

May 14, 2024 · 4 min · 691 words · Dylan Butler

Self-hosted traffic ingress

A quick snippet of my docker compose config for managing traffic ingress into my self-hosted setup. Cloudflare Zero Trust tunnel is being used to manage forwarding traffic from the public internet to my machine as I didn’t want to expose my network directly. Exiting the tunnel, cloudflare has been setup to direct all traffic to traefik:80 which is exposed on the ingress network. Based on rules defined on each service, traefik will the route the traffic to each of those services:...

May 13, 2024 · 1 min · 146 words · Dylan Butler