Drafting Sheets · a film

0:00 / 1:1201The box

Eight Little Suns

A GPU server drawn from its own TikZ, then run hot

A technical drawing of a GPU server that draws itself and then goes to work. It opens on its last moment, eight cards at full load with a sun over every fan, and winds back to an empty sheet. Then an orange spark reads a TikZ listing and drafts the server from it: a 2U chassis, eight cards with their fans, LEDs, heatsink fins and edge connectors, the PCIe bus with a bridge over every pair, and a trace from each card out through the wall. At three in the morning the night shift hands out a few small jobs. Then every card is given a training job, one after another; each climbs toward 95 °C, and as it passes 88 the pen draws a little sun over its fan. Every frame is rendered in your browser from that listing as it plays, and the score is code that reads the same plan.

Server Room, to touch
Tempo
96 BPM · 29 bars
Picture
The drafting engine, WebGL
Program
One TikZ listing, 72 lines
Rack
Load, power and heat, modelled
Sound
Original score, synthesised from the plan

Chapters7

The listing20 statements

The film is this TikZ: the listing of Server Room with its eight suns written in, drawn by the same engine as the other Drafting Sheets. Each sun’s step starts when its card passes 88 °C. Copied with one \tikzsetline for the sheet’s own keys, it compiles in any LaTeX document that loads TikZ.

% title: GPU server, eight cards% prompt: draw a GPU server in TikZ.\begin{tikzpicture} % the chassis, a 2U box, and its dimensions\draw[very thick] (-3.7,-2.1) rectangle (3.7,2.1);\draw[thick] (-3.7,1.82) -- (3.7,1.82);\foreach \x/\y in {-3.56/1.96,3.56/1.96,-3.56/-1.96,3.56/-1.96}  \draw (\x,\y) circle (.055);\draw[|<->|] (-3.7,2.5) -- node[above] {7.40} (3.7,2.5);\draw[|<->|] (-4.1,-2.1) -- node[left] {4.20} (-4.1,2.1); % eight cards: a fan, a hub, a status LED, twelve fins, an edge connector\foreach \i in {0,...,7} {  \draw[thick] (\i*.84-3.3,-1.35) rectangle ++(.72,3);  \draw (\i*.84-2.94,.85) circle (.27);  \draw (\i*.84-2.94,.85) circle (.06);  \fill[signal] (\i*.84-2.72,1.46) circle (.035);  \foreach \y in {.35,.23,...,-1}    \draw (\i*.84-3.22,\y) -- ++(.56,0);  \foreach \q in {0,...,7}    \draw (\i*.84-3.2+\q*.075,-1.35) -- ++(0,-.17);} % the PCIe bus, and NVLink bridges over each pair\draw[thick] (-3.65,-1.72) -- (3.65,-1.72);\foreach \i in {0,...,6} {  \draw (\i*.84-2.85,1.65) -- ++(0,.07) -- ++(.67,0) -- ++(0,-.07);  \draw (\i*.84-2.92,1.65) -- ++(0,.12) -- ++(.81,0) -- ++(0,-.12);} % one trace a card, routed at 45 degrees out through the wall\foreach \i in {0,...,7}  \draw[signal] ({\i*.84-2.94},-1.52) -- ({\i*.84-2.94},{-1.972+.036*\i})    -- ({\i*.84-2.87},{-2.042+.036*\i}) -- ({4.082-.036*\i},{-2.042+.036*\i})    -- ({4.152-.036*\i},{-1.972+.036*\i}) -- ({4.152-.036*\i},{-1.22+.13*\i});\foreach \i in {0,...,7}  \draw ({4.152-.036*\i},{-1.22+.13*\i}) circle (.03); % GPU 0 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(-2.94,.85)}] (\a:.31) -- (\a:.39); % GPU 1 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(-2.1,.85)}] (\a:.31) -- (\a:.39); % GPU 2 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(-1.26,.85)}] (\a:.31) -- (\a:.39); % GPU 3 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(-0.42,.85)}] (\a:.31) -- (\a:.39); % GPU 4 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(0.42,.85)}] (\a:.31) -- (\a:.39); % GPU 5 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(1.26,.85)}] (\a:.31) -- (\a:.39); % GPU 6 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(2.1,.85)}] (\a:.31) -- (\a:.39); % GPU 7 runs hot\foreach \a in {0,30,...,330}  \draw[signal,shift={(2.94,.85)}] (\a:.31) -- (\a:.39); \end{tikzpicture}

A GPU server in TikZ, drawn and run live. No frame was recorded.

Score: synthesised in code from the drawing’s plan and the rack’s own load, 96 BPM.

Drawing engine after plate 1 of I’m Upping My P(doom) by Giacomo Magnanini · mexicat/pdoom-video (MIT). The server is the one drawn in the opening of Decimal Point, this shelf’s own film; it is a generic eight-card box, not any maker’s model, and its load, power and heat are a model, not a recording.

四宫格