基本概念
1.CPU的任务:为串行任务优化
 2.GPU的任务:为并行任务优化
 3.L4T ubuntu:基于NVIDIA Tegra芯片的ubuntu系统(linux for Tegra)
 4.Tegra:继承了ARM CPU 和 NVIDIA GPU的处理器芯片
 5.X86:高性能,复杂指令,多用于win
 6.ARM:低功耗高效率,简易指令集,Linux
 7.GPU的产生:CPU的两个瓶颈 存储器墙(IO跟不上)时钟频率墙(散热)
CPU到GPU
所有的处理优化逻辑变成计算核心
 
 


 
 
CUDA线程层次

 
 
 block的意义:(为什么不直接用通过grid管理所有的thread)不用直接去分配N个线程 分班去管理 有利于内存管理
 GPU上运行函数kernel对应一个Grid,每个Grid内有多个Block,每个Block由多个Thread组成。
 执行原理参考1
 执行原理参考2
 硬件层面:一个DEVICE由多个SM和其他资源组成,一个SM由多个SP(CUDA Core)和其他资源组成
 软件层面:一个Grid由多个block组成,Block由多个Thread组成,Block内的Thread可以通过共享内存通信,也可以通过函数同步
 线程调度:CUDA的线程调度粒度是32个Thead,即1个Warp,Warp在SP上是随机且多次被调度执行的,Warp的切换开销可以忽略不计。



















