6.2.7 · D1 · HinglishGPU Architecture

FoundationsMemory hierarchy (global, shared, registers)

2,324 words11 min read↑ Read in English

6.2.7 · D1 · Hardware › GPU Architecture › Memory hierarchy (global, shared, registers)

Parent note mein ek bhi formula padhne se pehle, aapko woh vocabulary chahiye jinse woh formulas bane hain. Is page par har ek symbol aur har ek concept listed hai jo parent assume karta hai, bilkul zero se shuru karke, aur iss tarah order kiye gaye hain ki har ek apne pehle wale par tikaa ho.


0. Sabse pehli picture: memory ek ladder hai

Is topic mein sab kuch ek hi image par tikaa hai: storage ko ek ladder ki tarah arrange kiya gaya hai. Upar wale rungs chhote hain par pahuunchne mein instant hain; neeche wale rungs bahut bade hain par slow. Neeche diye figure ko dekho aur apne dimag mein rakho — baad ka har idea kisi na kisi rung se juda hai.

Figure — Memory hierarchy (global, shared, registers)

Ye topic ko kyun in do words ki zaroorat hai: parent ke summary table ki har row bas ek (latency, capacity) pair hai. Agar aap inhe distance aur width ki tarah feel nahi karte, to table sirf numbers hai.


1. Clock cycle — time ki unit

Jab parent likhta hai "memory access latency 100–1000× longer ho sakti hai computation se", iska matlab hai: ek arithmetic operation ~1 cycle cost karti hai, lekin ek global-memory fetch hundreds of cycles cost karta hai. Yahi ratio hierarchy ka poora motivation hai.


2. Bytes, KB, GB — size ki unit

Ek float (GPU mein ek decimal number) 4 bytes hota hai — yeh number yaad rakho, poori coalescing story isi se chalti hai. Ek byte ko ek chhoti si brick ki tarah socho; ek float chaar bricks ek saath chipki hui hain.


3. Thread — sabse chhota worker

Agar yeh naya hai, toh ise GPU Thread Hierarchy mein poori tarah build karo. Is page ke liye aapko sirf itna chahiye: ek thread ek worker hai, aur uske paas kuch private storage hai.

Figure — Memory hierarchy (global, shared, registers)

Topic ko warp kyun chahiye: coalescing aur bank conflicts dono is baare mein hain ki "jab 32 threads ek hi instant mein memory maangein toh kya hota hai". Warp nahi, coalescing nahi.


4. SM — woh factory floor jo fast rungs ka malik hai

Yahi poori register pressure ki kahani ki jadd hai: register file ek fixed-size cupboard hai jo SM se judi hui hai, aur har resident thread ko usme se ek drawer dena padta hai.


5. Parent ke formulas mein symbols

Ab jab pictures exist karti hain, hum letters ko naam de sakte hain. Har entry hai: symbol → simple words → jis picture mein woh rehta hai.

Figure — Memory hierarchy (global, shared, registers)

6. Har foundation topic ko kaise feed karta hai

clock cycle = time unit

latency vs capacity ladder

byte KB GB = size unit

thread = one worker

thread block

warp of 32 threads

SM owns fast storage

registers and Rtotal r

shared memory and banks B w

coalescing segments

bank conflicts mod

occupancy latency hiding

global memory transactions

Memory Hierarchy

Top-down padho: do units (time, size) ladder banate hain; worker hierarchy (thread → block → warp) plus SM decide karte hain kaun kaunsa rung share karta hai; woh saath milke teen formula-families produce karte hain — registers/occupancy, bank conflicts, aur coalescing — jo is topic ko banate hain.


7. Ek chhota sa worked check (sirf upar wale symbols use karta hai)


Equipment checklist

Daayein side ko cover karo aur har ek ka jawab aawaaz mein do. Agar koi fail ho, toh next deep dive se pehle uska section dobara padho.

Ek clock cycle hai
GPU ki clock ki ek tick — woh unit jisme saari latencies count ki jaati hain, taaki numbers alag-alag clock speeds par comparable rahein.
Ek float kitne bytes occupy karta hai
4 bytes (aur ek bank exactly 4 bytes wide hai, ).
Ek thread hai
ek data stream par aapka program run karne wala ek worker, apne private registers ke saath.
Ek warp hai
exactly 32 threads jo lockstep mein execute karte hain — woh unit jise memory system ek saath serve karta hai.
Ek SM hai
GPU ka ek processing floor jo physically register file aur shared memory rakhta hai, isliye woh chhote aur shared hote hain.
aur ka matlab hai
ek SM par total registers, aur ek thread ke dwara use kiye gaye registers.
(floor) symbol ka matlab hai
nearest whole number tak neeche round karna, kyunki aap ek fraction of a thread nahi chala sakte.
Occupancy hai
— thread ceiling ka woh fraction jo aap fill karte ho; high occupancy latency hide karta hai.
Ek bank hai
shared memory ki ek narrow lane jo ek request per cycle serve karta hai; hote hain.
(modulo) operation deta hai
division ke baad remainder — yeh ek address ko 32 banks mein se ek par map karta hai jaise hours clock par wrap hote hain.
Ek segment hai
ek aligned fixed-size block (32/64/128 B) jo global memory poora deta hai; count karta hai ki ek warp kitne touch karta hai.
(ceiling) symbol ka matlab hai
upar round karna — transactions ke liye use hota hai kyunki ek byte touch karna poora segment cost karta hai.

Aage: har symbol earn kar lene ke baad, ab aap parent ki three-level breakdown aur uske cousins CUDA Memory Types, Cache Architecture, aur Matrix Multiplication Optimization bina kisi undefined letter ke padh sakte ho.