CPU vs. GPU
High throughput
On parallel tasks
Hundreds/thousand of cores
Optimal for parallel operations
GPU
Optimized for many
parallel tasks
High computations per memory
access
Optimal for data parallelism
Deep pipelines
High latency tolerance
Complex control logic & large
caches
Optimal for task parallelism
Shallow pipelines
Low latency tolerance
High performance
On sequential codes/tasks
Multiple cores
Optimal for serial operations
CPU
Optimized for serial
tasks