Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions src/components/Header.astro
Original file line number Diff line number Diff line change
Expand Up @@ -614,14 +614,18 @@ const activeMenus = NAV_MENUS.map((menu) => ({

<script>
document.addEventListener("DOMContentLoaded", function () {
const navbar = document.getElementById("navbar");
if (!navbar) return;
const navbarElement = document.getElementById("navbar");
if (!navbarElement) return;
const navbar = navbarElement;

// ── Mobile hamburger toggle ──
const toggle = navbar.querySelector(".nav-toggle");
const navLinks = navbar.querySelector(".nav-links");
const toggleElement =
navbar.querySelector<HTMLButtonElement>(".nav-toggle");
const navLinksElement = navbar.querySelector<HTMLElement>(".nav-links");

if (toggle && navLinks) {
if (toggleElement && navLinksElement) {
const toggle = toggleElement;
const navLinks = navLinksElement;
function closeMenuMob() {
navLinks.classList.remove("open");
toggle.classList.remove("active");
Expand Down Expand Up @@ -697,7 +701,7 @@ const activeMenus = NAV_MENUS.map((menu) => ({
return parseInt(getComputedStyle(navbar).top) || 0;
}

function setBannerState(atTop) {
function setBannerState(atTop: boolean) {
if (!banner) return;
if (atTop) {
banner.style.transform = "translateY(0)";
Expand Down Expand Up @@ -760,7 +764,7 @@ const activeMenus = NAV_MENUS.map((menu) => ({
}
window.addEventListener("scroll", requestTick, { passive: true });

let bounceCheck = null;
let bounceCheck: ReturnType<typeof setTimeout> | null = null;
window.addEventListener(
"scroll",
function () {
Expand Down
52 changes: 52 additions & 0 deletions src/content/sprints/gpu-mode-cholesky.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: "GPU MODE: Cholesky Challenge"
numberOfPeople: "20"
pythonLevel: "Any"
contactPerson:
name: "Bryce Adelstein Lelbach"
email: "brycelelbach@gmail.com"
github: "brycelelbach"
twitter: "blelbach"
links:
- title: "Cholesky leaderboard"
url: "https://www.gpumode.com/leaderboard/776"
- title: "Cholesky problem and starter submission"
url: "https://github.com/gpu-mode/reference-kernels/tree/main/problems/linalg/cholesky_py"
- title: "Linear algebra competition announcement"
url: "https://www.gpumode.com/news/linear-algebra-kernels-age-of-research"
- title: "Popcorn CLI"
url: "https://github.com/gpu-mode/popcorn-cli"
- title: "GPU MODE Discord"
url: "https://discord.gg/gpumode"
---

Come learn how to compete in a GPU MODE kernel contest by tackling the new
Cholesky problem together. The challenge is to factor batches of symmetric
positive-definite FP32 matrices on an NVIDIA B200. It runs through 30 July, so
we can put what we learn straight onto the live leaderboard.

Every submission is a single Python file. You can begin with the working PyTorch
baseline, then optimize in Python with tools such as Triton or embedded CUDA.
The benchmark ranges from thousands of small matrices to one 32768-by-32768
matrix, leaving room for many different ideas. Tests and benchmarks run on
hosted B200s, so you do not need a local GPU.

Bryce from NVIDIA will help participants install and register the Popcorn CLI,
understand the problem, make a first correct submission, read benchmark and
profiling results, and choose an optimization to try. The goal is for every
newcomer to leave knowing the complete contest workflow; experienced GPU
programmers are welcome to team up and chase the leaderboard.

Participants who want to use a coding agent can have Popcorn scaffold the
agent's contest workflow. Bryce will show how to give an agent a concrete
optimization goal, let it run the iterative edit-test-benchmark loop, inspect
its performance evidence, and keep numerically incorrect changes off the
leaderboard. Working directly by hand, pairing with another person, or bringing
your preferred coding agent are all equally welcome.

NVIDIA will provide participants with a free sandbox VM and inference keys for
the purposes of the contest.

No previous GPU-kernel or agent experience is required. Bring a laptop and a
GitHub or Discord account for authentication; basic Python familiarity will
help.
Comment thread
robobryce marked this conversation as resolved.