Skip to main content

Something You Need to Know About GPUs

· 8 min read
note

When using the provided server, everything including the driver and CUDA toolkit is already installed, so you might not need to worry about these details initially. However, I strongly encourage you to understand these concepts because you might one day need to maintain your own server (though hopefully you won't have to).

Introduction

Back in the day, I always wondered why we could run PyTorch code on our local machine without a GPU, but when it came to compiling or training local library, we suddenly needed CUDA toolkit. What's going on under the hood?

In this article, we’ll break down the mystery behind CUDA, cuDNN, and all the other buzzwords. By the end, you’ll have a clearer (and hopefully less intimidating) understanding of how they all fit together.

Basic Series 5 - Configuration with Tyro

· 5 min read
warning

Code Style Note: The demonstration code examples in this post are intentionally compact for readability. In production code, you should follow PEP 8 style guidelines with proper spacing, line breaks, and formatting.

Why Use Configuration Tools Anyway?

  • Single source of truth: No more copy-pasting option definitions across your code, CLI parser, and docs.
  • Less boilerplate: Automatically handle parsing, defaults, validation, and help text without endless manual work.

Why Tyro?

  • Pure Python: Just use type hints and dataclasses — no extra weird config files or DSLs to learn.
  • One-liner CLI: tyro.cli(...) magically figures out flags, defaults, help messages, and even subcommands for you.
  • Better developer experience: You get IDE autocomplete, type checking, and neat, hierarchical interfaces. (Honestly, this is my favorite part!)

Basic Series 4 - Mastering tmux for Efficient Terminal Management

· 5 min read

This guide explains how to use tmux (Terminal Multiplexer) to enhance your terminal productivity and manage multiple terminal sessions effectively.

What is tmux?

tmux is a terminal multiplexer that allows you to:

  • Create multiple terminal sessions within a single window
  • Detach from sessions without closing them
  • Reattach to sessions from different terminals
  • Split your terminal into multiple panes
  • Share terminal sessions with other users

Basic Series 3 - Python Code Formatting with Black and isort

· 5 min read

This guide shows you how to automatically format your Python code using Black and isort, so your project stays clean, consistent, and easy to read (even at 3 a.m. after too much coffee).

What Are Black and isort?

  • Black: An opinionated Python code formatter that auto-formats your code to follow PEP 8 style (so you can stop arguing about whitespace with your teammates).
  • isort: Automatically sorts and organizes your imports into neat, logical sections.

Basic Series 2 - Using uv for Python Package Management

· 4 min read
note

This post may be updated as better alternatives to uv emerge.

uv is a super-fast Python package installer and resolver, built in Rust. Think of it as a modern, turbocharged alternative to pip and other Python package managers.

Key Features

  • Speed: uv is blazing fast compared to traditional tools.
  • Automatic Python Management: It can handle downloading and managing Python versions for you.
  • Compatibility: Works nicely with existing Python installs.
  • Modern CLI: Clean, intuitive commands that are easy to remember.

Basic Series 1 - Uploading Code to a GitHub Repository

· 4 min read

This guide will show you how to push your local code to a private GitHub repository step by step — no stress, no cryptic errors (hopefully).

Prerequisites

Before we jump in, make sure you have:

  • Git installed on your computer
  • A GitHub account
  • An SSH key set up (recommended) or a Personal Access Token

Introduction to Multi-GPU Training

· 4 min read
note

This tutorial assumes you already know the basics of PyTorch and how to train a model.

Why Do We Even Need Multiple GPUs?

These days, training big neural networks is like trying to stuff an elephant into a suitcase — it just doesn’t fit!

As datasets and models keep getting bigger and bigger, a single GPU often can’t handle the memory requirements, or it’s just painfully slow. That’s where using multiple GPUs swoops in to save the day.