文档介绍:1
硬件加速器的设计(Verilog 1364-2001)
-- 建模、仿真、综合、验证和实现--
北京航空航天大学夏宇闻
2
课时安排和学****方法
四次讲课每次3小时;
下课后自己阅读材料在助教指导下做实验4小时;
课堂 3 x 4 =12小时,自己看书 20 小时,做实验 20 小时,共计52小时;
理论与实践结合的学****方法;
考核方法:修改课上介绍的设计,使其具有更高的性能。
3
讲课的主要内容
硬件加速器的一般概念
为什么要研究硬件加速器
设计硬件加速器基本方法:
流水线和硬件复制
软件/硬件的划分原则
算法核心(Kernel)
多主设备共享内存系统
4
讲课的主要内容
设计举例
视频图像边缘检测
算法的原理
卷积表
算法的伪码表示
中间值和最终值的比特需求
处理阶段的划分
5
讲课的目的
提醒材料上容易忽略的内容;
指出重点和关键点;
帮助同学理解材料上的难点;
自己看材料、上机练****为主;
互相认识,以便交流。
6
一般概念
在嵌入式DSP系统中,对处理器有很高的要求,编写专用的嵌入式软件,采用高档的DSP处理器芯片有时也无法达到系统对算法运算速度的要求,即使能达到性能价格比太差。
不得不设计专用硬件;
采用硬件复制和流水线方法;
增加并行性;
还需要控制成本。
7
一般概念
数据的互相依赖性;
中间数据的保存;
硬件的复制;
用一个时钟在几个并行硬件中可同时完成多个操作;
时钟的频率也可以提高。
8
一般概念
步骤1
步骤2
步骤3
寄存器
寄存器
寄存器
图流水线
在复杂应用中要复合应用流水线和硬件复制方法
9
加速算法核心(kernel)引起的性能改善的量化:
设执行算法核心所占的时间比例为 f。则执行非算法核心的时间为
(1- f ),因此有:
t = ft + ( 1-f ) t
如果加速器能把算法核心的处理速度提高到原来的 s 倍,则算法核心的处理时间就缩短到原来的1/s,非算法核心的处理时间不变。因此,这个算法总的运行时间为: t’= ft/s + ( 1- f ) t
总体性能的提高比例是原来的处理时间除以加速后的处理时间:
S’= (ft+(1-f ) t) / ( ft/s+(1-f ) t ) = 1 / ( f/s+(1-f ))
这个公式称为Amdahl法则,是以Gene Amdahl的名字命名的,他是并行计算的先驱之一。这个公式表明加速处理核心(kernel)算法所带来的整体性能的提高在很大程度上依赖于算法核心在整个算法执行时间中所占的比例。
一般概念
10
例1:假设在嵌入式处理器上运行的算法可以分成不同的部分,执行每一部分所花费的时间可以估算出来,而该算法可分为两个部分,即分成两个核心(kernel)算法,一个占总时间的80%,而另一个只占总时间的20%。若用一个硬件加速器来加速算法核心,我们将第一个算法核心的运行速度提高到原来的10倍,或者将第二个算法核心提高到原来的100倍,试问对哪个算法核心使用硬件加速器能对总体性能的提高产生更好的效果?
解:对第一个算法核心进行加速处理所带来的总体性能提升为:
1 / (()+(1-)) = 1/(+) =
对第二个算法核心进行加速处理带来的总体性能提升为:
1 / (()+(1-)) = 1/(+) =
一般概念