6.5.7 · D1 · HinglishAdvanced & Emerging Architectures

FoundationsGoogle TPU architecture and systolic arrays

3,413 words16 min read↑ Read in English

6.5.7 · D1 · Hardware › Advanced & Emerging Architectures › Google TPU architecture and systolic arrays

Is page par assume kiya gaya hai ki aap kuch nahi jaante. Har letter, arrow, aur word jis par parent topic depend karta hai, yahan build kiya gaya hai — ek order mein, har ek apni jagah earn karta hai pehle, phir agla usse use karta hai.


0. Ek number, numbers ki list, numbers ka grid

Kisi bhi formula se pehle, data ki teen shapes fix karo.

Figure — Google TPU architecture and systolic arrays

Topic ko ye kyun chahiye: ek neural network layer apni seekhi hui knowledge ko weights ki ek matrix mein store karti hai, aur us se flow hone wala data activations ke vectors ke roop mein hota hai. TPU jo bhi karta hai wo vectors ko matrices ke through push karna hai.

Padho Question ::: Answer:

kya point karta hai?
Matrix ki row 3, column 1 mein wala number.

Topic ko ye kyun chahiye: parent core formula ko ke roop mein likhta hai. Ye unreadable hai jab tak aap na jaano ki = answer ki row, = answer ka column, = jis cheez par sum kiya ja raha hai.


1. Multiply aur add — machine ka atom

Picture: ek khali jar jis par likha hai. Har round mein aap ek product daalte ho; jar abhi tak daale gaye sab kuch ka sum rakhta hai.

Topic ko ye kyun chahiye: parent ke throughput formula (jo §5 mein build aur explain hoga, jab = array side aur = clock frequency exist karein) mein factor of sirf isliye hai kyunki har ek MAC 2 FLOPs hai. Ye miss karo toh formula magic lagega.


2. Dot product — ek row mein MACs ka sum

Ab us formula mein strange symbols:

Picture: jars ki ek row, har ek mein ek product hai; un sab ko ek bade jar mein daal deta hai.

Figure — Google TPU architecture and systolic arrays

Topic ko ye kyun chahiye: poora matrix-multiply formula har output cell ke liye ek dot product hai. Systolic array kuch nahi balki ek machine hai jo bahut saare dot products parallel mein compute kare.


3. Matrix multiply — dot products ka grid

Ab hum parent ki central equation padh sakte hain.

Ek picture ke saath indices trace karo:

Figure — Google TPU architecture and systolic arrays
  • fixed hai ek ki row (red row) choose karne ke liye.
  • fixed hai ek ka column (blue column) choose karne ke liye.
  • wo counter hai jo us row ke saath aur us column ke neeche saath saath chalta hai, har baar jo pair milta hai use multiply karta hai aur running sum mein add karta hai.

Padho:

ke columns ke rows ke barabar kyun hone chahiye?
Har output ek row of aur ek column of ka dot product hai, aur dot product ke liye dono lists ki length equal honi chahiye.

Topic ko ye kyun chahiye: ye equation hi workload hai. Baaki sab kuch — array, streaming, fill cost — is ek formula ko saste mein run karne ke liye exist karta hai.


4. Dard kahan se aata hai — memory vs. arithmetic

Multiplications sasti hain. Mushkil numbers fetch karne mein hai.

Picture: ek factory (compute) jo ek single narrow conveyor belt (memory) se feed hoti hai. Agar har delivered part kai operations mein use hoti hai, toh factory busy rehti hai. Agar har part ek baar use hoke throw away ho jaaye, toh factory belt ka intezaar karte hue idle rahti hai.

Figure — Google TPU architecture and systolic arrays

Topic ko ye kyun chahiye: systolic array ka poora justification hai "har number ko ek baar read karo, use times reuse karo." Ye arithmetic intensity badhata hai, jo wo number hai jo Roofline model apne x-axis par plot karta hai. Parent ka claim "arithmetic intensity " exactly yehi idea precise tarike se kaha gaya hai.


5. Clock, cycle, pipeline — "flowing" kaise measure hota hai

aur ab define hone ke baad, parent ka formula clearly padha ja sakta hai: ek grid mein cells hain; steady state mein har ek har cycle mein ek MAC (= 2 FLOPs) finish karta hai, aur per second cycles hain, toh peak throughput FLOP/s.

Picture: ek garden hose. Tap on karo aur paani instantly nahi nikalta — pehle use hose ki poori length travel karni padti hai (fill). Agar aap sirf ek cup chahte the toh wo travel time waste hai.

Padho:

Systolic arrays bade batches kyun prefer karte hain?
Fixed fill/drain cost ( cycles) ek baar pay hoti hai; ek bada batch use kai useful cycles mein spread kar deta hai isliye efficiency 100% ke karib pahunch jaati hai.

6. Specialised-chip vocabulary


Prerequisite map

Neeche wala diagram ek dependency map hai: har arrow ko padho as "left wale box ki zaroorat hai right wale box samajhne se pehle." Arrows follow karo top foundations se neeche TPU tak. (Diagram se pehle ka text Obsidian ke liye drawing instructions hain — syntax ignore karo aur boxes aur arrows padho.)

scalar vector matrix

index Aij row and column

MAC multiply then add

dot product sum of MACs

matrix multiply Cij

memory read cost

arithmetic intensity

FLOP and throughput

clock and cycle

pipeline fill and drain

systolic array PE grid

ASIC domain specific

8 bit quantization

TPU architecture

Har foundation agla feed karta hai; saath mein ye systolic array aur TPU par pahunchte hain.


Equipment checklist

Khud ko test karo — sirf apne answer ke baad reveal karo.

Kya main padh ke bol sakta hoon wo kaunsi row aur column hai?
Haan — row hai, column hai.
Kya main symbol ke do meanings jaanta hoon?
Numbers ke beech ye plain multiplication hai; matrices ke beech ye §3 ka matrix multiply hai.
Kya main ek dot product ko products ke sum ke roop mein state kar sakta hoon?
— matching entries multiply karo, unhe add karo.
Kya main jaanta hoon add kyun karta hai, multiply kyun nahi?
Sigma = Sum; multiply symbol (pi) hoga, jo yahan kabhi nahi aata.
Kya main matrix product ki ek entry compute kar sakta hoon?
Ye ki row aur ke column ka dot product hai.
Kya main jaanta hoon matrix shapes kyun match karni chahiye ()?
Shared dimension har dot product ki length hai; dono lists equally long honi chahiye.
Kya main bol sakta hoon ek MAC kya hai, uska starting value kya hai, aur ye kitne FLOPs hai?
Accumulator se start hota hai; har step mein do numbers multiply hote hain aur result add hota hai; 1 multiply + 1 add = 2 FLOPs.
Kya main jaanta hoon FLOP/s, TOPS, aur "peak" ka matlab?
FLOP/s = float ops per second; TOPS = trillion integer ops per second; peak = best-case speed jab har unit busy ho.
Kya main arithmetic intensity ek consistent unit mein define kar sakta hoon?
Memory se fetch ki gayi har value par kitne operations hue (top aur bottom dono values/bytes mein count kiye).
Kya main jaanta hoon aur kahan se aate hain?
outputs times -long dot products = MACs; = aur ki input values ek baar read ki gayi.
Kya main bol sakta hoon ek byte kya hai?
Standard small data unit; ek 8-bit number ek byte mein fit hota hai.
Kya main jaanta hoon clock cycle, fill/drain, aur batch kya hain?
Ek cycle ek tick hai; fill/drain startup cost hai jab data array cross karta hai; ek batch bahut saare inputs ek saath process hote hain.
Kya main explain kar sakta hoon TPU caches aur branch prediction kyun drop karta hai?
Uska dataflow fixed aur predictable hai, toh wo bachaya hua chip area zyaada MAC units mein lagata hai.
Kya main inference aur training ke beech difference explain kar sakta hoon?
Training weights seekhti hai (precision chahiye); inference ek trained network use karta hai (low precision tolerate hoti hai).