Promgramming Model = how the programmer expresses the code
e.g) Sequential (von Neumann) , Data Parallel (SIMD) , Dataflow, Multi-threaded (MIMD, SPMD)
Execution Model = how the hardware executes the code underneath
e.g) Out of order execution , Vector processor , Array processor , dataflow processor, Multithreaded processor
GPU = SPMD(Single program Multiple data) model implemented by a SIMD processor , SIMT(Single Instruction Mutiple Thread)
it is programmed using threads
- each thread executes the same code but operates a different piece of data
- each thread has its own context
Warp = a set of threads that execute the same instruction

SIMD = a single sequential instruction stream of SIMD instructions , each instruction specifies mutiple data inputs
SIMT = Mutiple insturction streams of scalar instructions -> threads grouped dynamically into warps
Major SIMT advantages
- can treat each thraed separately = can execute each thread independently (MIMD processing)
- can group thread into warps flexibly = can group threads that are supposed to truly execute the same insturction (dynamically obtain and maximize benefits of SIMD processing).

(PC,Mask) can be thought of warp.
warp is a thing that contains mutiple threads operates on different piece of data.

since this warp is consist of 32 threads and we have only 8 lanes(computer's threads) 1 warp will take 4 cycles. and each warp can we scheduled as pipeline.
Computer Architecture - Lecture 9: GPUs and GPGPU Programming (ETH Zürich, Fall 2017) - YouTube
'Computer Architecture > C.A (ETH Zürich, Spring 2020)' 카테고리의 다른 글
Lecture 21b: Memory Hierarchy and Caches (0) | 2021.07.27 |
---|---|
Lecture 19: SIMD Processors (0) | 2021.07.19 |
Lecture 18a: VLIW (0) | 2021.07.11 |
Lecture 16: Branch Prediction (0) | 2021.07.10 |
Lecture 15b: Out of Order , DataFlow & LD/ST Handling (0) | 2021.07.10 |