GPU: Graphic Processing Unit 图形处理器
Shader: GPU执行的,针对3D对象进行操作的程序.
以VIP7000为例:
Shader: 1个shader是128位的处理单元. VIP7000的gpu有2个shader, 所以有2个core, 所以一个周期可以处理2条指令.
VIP上有2套指令集,shader指令集和针对vision的指令集.program cache: 外面的程序加载到VIP7000的program cache里面,然后去执行.
存放的是openvx的指令
shader core: VIP7000有2个shader core, 所以一个周期可以执行2条指令.
每个shader core里面有4个寄存器文件,每个寄存器文件有128个寄存器,每个寄存器是128bit.
1个shader core是128位的处理单元== 每行代码分解为多条指令,每天指令最多拥有128bit的资源.
一个周期执行完一条指令.
存放的是openvx的数据
Special HW Acceleration: 硬件加速.
Uniform: 代码中所用的常量, DP指令的配置等.
L1-Cache: 是被所有的shader所共用,进shader里的所有数据都会经过L1-Cache, L1-Cache跟外面的DDR打交道.
CPU和GPU的差别:
CPU: 通过加缓存,一级缓存,二级缓存等,来减少读数据的延迟.
core读外面的DDR数据,这种常访问不管对什么平台都是非常耗时的. 对CPU而言,面积功耗不是特别在意,它可以不停的堆一级缓存、二级缓存,但这种方式对嵌入式是不可复制的,需要考虑的功耗成本极大.
GPU: 增加一些寄存器,减少一些内存memory, 隐藏从DDR读数据. 比如从DDR读数据需要200个周期,GPU这200个周期可以做其它事情,读取数据可以延迟.
指令集: Shader指令集 + EVIS指令集.
图像处理用EVIS指令集最好.