Expand description
The Intel PAC D5005: a Stratix 10 SX 2800 on four channels of DDR4, as a decode card.
The card’s facts are its data sheet’s, its shell’s and its device’s resource table’s. What a design adds to them
is an EnginePlan: how many DSP blocks multiply 4-bit weight codes, two products to each of a block’s two 18×19
multipliers; how many soft multiply-adds the logic carries beside them; how many block-scale lanes turn the
array’s integer sums into f32, and the DSP blocks and logic they take; how many DSP blocks run in f32 for the
vector units; how much of each DDR4 beat carries data; how many lines of a recurrent state the stream engines
read before writing them back; and the clock the array closes at. Until the engine is fitted the clock, the soft
multiply-adds and the lanes’ logic are modeled, and every price that rests on them says so. Until the card’s
stream receipt is taken, the share of the DDR4 peak each way a pass moves its bytes sustains is the DDR4 ledger’s
(DDR_STREAMS): the shell’s own controller timing, issued by the JESD79-4 controller model.
roofline prices Qwen3.8-27B on the card at every knob point of the decode engine, one trick at a time,
from the checkpoints’ own headers: what each trick buys, which term binds, and how many sequences fit.
Re-exports§
pub use super::part::S10_OVERVIEW;pub use super::part::S10_PRODUCT_TABLE;
Structs§
- Beat
Streams - One beat’s streams in the DDR4 ledger (
benchmarks/silicon/d5005/ddr4_efficiency.json, written bysuper::decode_engine::ddr::ddr_ledgerfrom the shell’s EMIF timing through the JESD79-4 controller model), in the ledger’s order: a long read of weights; a Gated-DeltaNet memory read and written backSTATE_CHUNKSlines at a time; a cache read with its new position appended after it, at each ofCACHE_POSITIONS. - Engine
Plan - How the decode engine spends the device: the multiplier budget, the block-scale lanes, the memory beat and the clock it closes at.
- Full
Beat - Roofline
- Roofline
Row - One knob point of the engine and its price at the batch that emits the most tokens per second.
- Stream
Clocks - The clocks a channel carried data in of the clocks one stream took, as the DDR4 ledger counts them.
Enums§
- Beat
- How much of each DDR4 beat carries data.
Constants§
- ACCEPTANCE_
LEDGER - The ledger the measured MTP acceptance is read from.
- ACCEPTANCE_
POINTER - The JSON pointer of the one-draft acceptance measured on Qwen3.8-27B.
- ALMS
- Adaptive logic modules.
- ARRAY_
MACS_ PER_ DSP - Products of a 4-bit weight code and an 8-bit activation code one DSP block retires per cycle: each of its
two 18×19 multipliers takes an activation code on one port and two rows’ weight codes on the other, so two
rows’ products leave every multiplier in disjoint lanes (
decode_engine::rtl::array). - CONTEXT_
SWEEP - Context limits the sweep allows its sequences, each halfway through its limit: up to the checkpoint’s own.
- D5005_
DATA_ SHEET - The card’s data sheet.
- D5005_
FIM_ EMIF - The card’s shell: its four memory controllers built without ECC, each exposing all 72 bits of a beat.
- D5005_
OFS_ GUIDE - The Open FPGA Stack guide for the card: its shell’s memory and host interfaces.
- D5005_
SOURCES - DDR_
BYTES_ PER_ TRANSFER - DDR_
CHANNELS - DDR4 channels, the transfers per second of each and the bytes per transfer (64 data bits; ECC beside them).
- DDR_
CHANNEL_ BYTES - Bytes each channel’s DIMM holds: 1 Gi words of 64 data bits.
- DDR_
STREAMS - The DDR4 ledger’s streams at both beats.
- DDR_
TRANSFERS_ PER_ S - DRAFT_
HEAD_ ROWS - Vocabulary rows the drafting head reads when it keeps only the most frequent tokens.
- DSP_
BLOCKS - DSP blocks on the device: half its 18×19 multipliers, two to a block.
- KV_PAGE
- Positions per KV page.
- LANE_
MIX - Array cycles per lane cycle the standard plan’s lanes keep up with: Qwen3.8-27B Q4_K_M’s own mix, its K-quant matrices a lane cycle per 256 elements, its Q8_0 matrices one per 32 over two passes, its drafting layer’s Q4_0 one per 32, with room for the drafting layer.
- M20K_
BITS - M20K_
BLOCKS - M20K blocks and the bits each holds.
- PCIE3_
SPEC - The host link’s signalling.
- PCIE3_
X16_ BYTES_ PER_ S - Bytes per second one direction of the PCIe Gen3 x16 host link carries: 16 lanes of 8 GT/s, 128b/130b.
- SCALE_
LANE_ DSPS - DSP blocks one block-scale lane takes: its block scale times the activation scale times the block’s integer sum and its second scale’s alike, two 27×27 products, and its f32 accumulate.
Functions§
- card
- The card as a serving sees it, under
plan. - chip
- The card as a batch-one decode sees it: the M20K blocks and the DDR4 behind them.
- host_
link - The host memory the card reaches over PCIe Gen3 x16, both directions at once.
- ladder
- The engine’s knob points, one trick added at a time, then every trick at every weight format.
- measured_
acceptance - The one-draft acceptance, as measured.
- mixed
- A serving’s mix of chats, documents and long contexts: 70% of sequences at 512 of 2,048 positions, 25% at 4,096 of 8,192, 5% at 65,536 of 131,072.
- roofline
- Every knob point of
ladderpriced on the card under the standard plan, at its fastest batch. - streams
- The shares of the card’s DDR4 the stream engines sustain under
plan, from the ledger’s streams at its beat: the weights’ long read; the state rewritten at the plan’s chunk; the least of the caches’, which holds at every context the ledger prices. - weakest
- The weakest provenance of every fact a roofline row rests on.