Thinking about the Parallelism Revolution

标签:
gpucpuarchitectureparallelit |
分类: 学术科研--为伊消得憔悴 |
1.The differences between CPU and GPU
Design philosophy: CPU is designed to optimize for
sequential code performance. The sophisticated control logic, and
more importantly, large cache memory are its soul. However, GPU is
designed to optimize for the execution of massive number of
threads. Minimizing the control logic and cache memory are ways to
make it efficient.
GPU takes advantage over CPU in terms of memory
bandwidth.
2.What concerns when we choose the processors for running our applications:
The performance
Market presence
Easy accessibility
Standard support(i.e.IEEE)
3.Know something about architecture of a CUDA-capable GPU
Host->Input
Assembler->Thread Execution
Manager->Building Block->Highly
Threaded Streaming
Multiprocessors->Streaming processor
(if any question, please make comments below!)
One streaming processor usually contains a
multiply-add(MAD)unit and an additional multiply(MUL)unit. Special
function units perform floating point functions such as SQRT and
RCP(reciprocal) SQRT as well as transcendental functions.
4.Trick for high speedup
In general, applications often saturate the
memory(DRAM) bandwidth, resulting in about 10X speedup rather. The
trick is to figure out how to get around memory bandwidth
limitations, which involved doing one of many transformations to
utilize specialized GPU on-chip memories to drastically reduce the
number of accesses to the DRAM.
5.Focus on computational thinking techniques. To see what is computational thinking, click here!
2.What concerns when we choose the processors for running our applications:
3.Know something about architecture of a CUDA-capable GPU
4.Trick for high speedup
5.Focus on computational thinking techniques. To see what is computational thinking, click here!