Foundations — CUDA cores and execution model
6.2.3 · D1· Hardware › GPU Architecture › CUDA cores and execution model
Is page par yeh assume kiya gaya hai ki tumne parent note ka koi bhi notation pehle nahi dekha. Hum har term ek-ek karke build karte hain, aur har naya idea sirf pehle waale ideas par lean karta hai. Jab tum finish karo, CUDA cores and execution model dobara padho aur har symbol pehle se familiar lagega.
1. Clock cycle — har cheez ki heartbeat
Kisi bhi core, warp, ya memory word se pehle, time hai, jo equal ticks mein kata hua hai.
Ek drummer ki imagine karo jo ek steady beat rakh raha ho. Har beat par, factory mein har worker ko apne haath ek baar move karne ki permission hoti hai.
Yeh topic ko kyun chahiye: parent note mein har cheez cycles mein count ki jaati hai — "1 op per cycle", "200 cycles for global memory", "one warp instruction per cycle". Cycles poore page ke liye unit of time hain. Latency-hiding formula ko tum cycles ke bina nahi padh sakte.

Picture dekho: har vertical grid line ek beat hai. Ek fast operation ek beat mein fit hoti hai; ek slow operation (door waali memory ka ek trip) saikdon beats span karta hai. Yahi gap woh poori wajah hai jis wajah se GPUs us tarah build kiye jaate hain jaise hain.
2. ALU — chota calculator
Ek single pocket calculator ki imagine karo jisme exactly ek button per beat press hoti hai.
Parent note kehta hai ki ek CUDA core sirf ek ALU hai. Yeh poore page par sab se important de-mystification hai: ek "CUDA core" ek computer nahi hai, yeh ek calculator hai. Ek baar yeh maan lo, toh "16,384 CUDA cores" magical lagna band ho jaata hai — iska matlab sirf 16,384 calculators hai.
padhna: ki purani value lo, usme ka product add karo, result wapas mein store karo. ka matlab multiply; ka matlab add; ka matlab "ban jaata hai".
3. Thread — ek recipe follow karta ek worker
Ek insaan ki imagine karo workstation par. Recipe (program) shared hai; notepad (unki registers, section 6) sirf unki apni hai.
Yeh topic ko kyun chahiye: poora GPU model hai "ek million threads launch karo, hardware ko decide karne do ki har ek kab run kare." Thread us story ka atom hai.
4. Warp — 32 workers lockstep mein chalte hue
Yeh woh idea hai jo GPU ko GPU banata hai, na ki sirf calculators ka ek bada pile.

Picture dekho: upar ek instruction arrow 32 ALUs tak fan out karta hai. Har ALU alag number par kaam karta hai (thread 0 A[0] par, thread 1 A[1] par, …) lekin sab identical operation perform karte hain.
32 ka number ek hardware convention hai (2 ki power, index karna easy), koi derived cheez nahi. Parent note is baare mein explicit hai.
"Ek instruction, kai threads jo principle mein diverge ho sakte hain" ka formal naam SIMT (Single Instruction, Multiple Thread) hai. Ise plain lockstep SIMD se compare karo SIMD vs SIMT mein — SIMT woh SIMD hai jo divergence ko allow karta hai (lekin penalise karta hai).
5. Blocks, grids, aur indexing formula
Ek warp 32 threads ka hai; lekin tum millions launch karte ho. Unhe kaise organize kiya jaata hai?
Ab parent ka key formula. Yeh jawab deta hai: "Main ek specific worker hoon — array ka kaunsa slot mera hai?"
Chalo har symbol earn karein:
- — apne block ke andar tumhari seat number (0, 1, 2, …).
- — har block mein kitne threads hain (block ki size).
- — tum kis block mein ho (block 0, block 1, …).
Yeh exact formula kyun? Socho ki seats rows mein numbered hain. Poore theatre mein apna seat number paane ke liye, tum (apna row number) × (seats per row) lete ho, phir row ke andar apni seat add karte ho. Yeh exactly hai.

Picture dekho: block 2, thread 3, block size 4 ke saath, global ID deta hai — zero se count karte hue 12th slot. .x ka matlab sirf "x-direction"; blocks 2D ya 3D bhi ho sakte hain (.y, .z add karke), lekin idea samajhne ke liye 1D kaafi hai.
6. Registers — private notepad
Har worker ke elbow par notepad ki imagine karo: turant read kar sako, lekin pages sirf kuch hi hain.
Yeh topic ko kyun chahiye: registers scarce hote hain aur sare resident threads mein share out hote hain. Parent ka occupancy estimate bas yahi hai "total register slots divided by threads ki number jo tum ek saath present chahte ho". slots aur threads ke saath, har thread zyada se zyada registers use kar sakta hai. Khatam ho jaayein, aur kam threads fit honge — yeh occupancy and performance ka topic hai.
7. Latency, throughput, aur yeh dono alag kyun hain
Do words jinhe parent baar baar use karta hai, aur log baar baar confuse karte hain.
Ek highway ki imagine karo. Latency = tumhari car ko road drive karne mein kitna time lagta hai. Throughput = per minute kitni cars finish line cross karti hain. Lanes add karna throughput badhata hai lekin tumhari ek car ko jaldi nahi pahunchata.
Latency hiding ka trick hai wait ko bharna: jab warp A 400 cycles memory ke liye stall ho, scheduler warps B, C, D… run karta hai, taaki koi bhi ALU idle na rahe. Parent ka formula bas yahi hai "mujhe gap bharne ke liye kitne spare warps chahiye", jahan = schedulers, = stall length in cycles, = compute cycles ek warp karta hai stall hone se pehle. Yeh seedha memory hierarchy se connect karta hai, jo wajah hai ki stalls exist karte hain.
8. Efficiency symbol padhna
Parent (Greek letter "eta") introduce karta hai memory transaction efficiency ke liye.
Ek speed kyun nahi, fraction kyun? Kyunki yeh alag karta hai kitna achha tumne road use kiya se road kitni fast hai — tum ko peak bandwidth se multiply karte ho apni real effective bandwidth paane ke liye. Yeh coalescing story ke liye matter karta hai aur parallel programming patterns se connect karta hai.
Prerequisite map
Baayein taraf ki har cheez daayein taraf ke parent topic ko feed karti hai. Dhyan do ki clock cycle aur thread do sache roots hain — har doosra idea in dono se ugta hai.
Equipment checklist
Khud test karo: daayeen taraf cover karo aur zor se jawab do.
Clock cycle kya hai, ek sentence mein?
Kya ek CUDA core ek full processor hai?
FMA likho.
Ek warp mein kitne threads hote hain, aur woh number kyun?
SIMT kya allow karta hai jo plain lockstep nahi karta?
Global thread ID formula do aur har symbol ka naam batao.
Kya global thread IDs 0 se start hoti hain ya 1 se?
if (i < N) se guard karte hain.Register kya hai aur yeh kitna fast hai?
Latency vs throughput ek line mein?
Cores add karna ek single warp ko speed up kyun nahi karta?
kya measure karta hai aur iske units kya hain?
Jab upar ki har line aasani se aane lage, tum CUDA cores and execution model ke liye ready ho.