Input dimension 4096 और output dimension 4096 वाली linear layer एक (batch_size × 4096) input matrix को (4096 × 4096) weight matrix से गुणा करती है, (batch_size × 4096) output उत्पन्न करती है। प्रत्येक output element एक input row और एक weight column का dot product है: 4096 गुणन और 4095 जोड़। एक उदाहरण के लिए, यह 4096 × 4096 ≈ 16.8 मिलियन multiply-add ऑपरेशन है। एक layer के लिए। एक 32-layer Transformer यह प्रति layer दर्जनों बार करता है।
Matrix multiplication "embarrassingly parallel" है: प्रत्येक output element स्वतंत्र रूप से computed किया जा सकता है। CPU उन्हें अनुक्रमिक रूप से compute करता है (प्रति element तेज़, लेकिन serial)। GPU हज़ारों को एक साथ compute करता है (प्रति element धीमा, लेकिन massively parallel)। NVIDIA H100 FP16 matrix multiplication के ~1000 TFLOP/s करता है — लगभग 1 quadrillion multiply-adds प्रति सेकंड। यह parallelism ही एकमात्र कारण है कि deep learning व्यावहारिक बना।
GEMM (General Matrix Multiply) इतना केंद्रीय है कि hardware vendors इसे जुनूनी रूप से optimize करते हैं। CUDA cores matmul के लिए डिज़ाइन किए गए हैं। Tensor Cores (NVIDIA) एक ही clock cycle में 4×4 matrix multiplications करते हैं। पूरा memory hierarchy (registers, shared memory, L1/L2 cache, HBM) डेटा को matmul units तक प्रवाहित रखने के लिए organize किया गया है। जब लोग कहते हैं कि AI inference "memory-bandwidth bound" है, तो उनका मतलब है कि hardware memory से matrices पढ़ने की तुलना में तेज़ी से गुणा कर सकता है।