面向视觉处理的 可重构阵列互连技术研究

35
面面面面面面面 面面面面面面面面面面面 刘刘刘 2014.04.15

Upload: thwaite-lundy

Post on 03-Jan-2016

69 views

Category:

Documents


5 download

DESCRIPTION

面向视觉处理的 可重构阵列互连技术研究. 刘江明 2014.04.15. 目录. 可重构阵列架构及互连. 视觉信息处理算法并行验证. 基于 RANSAC 的图像匹配算法改进. 可重构阵列架构设计及算法映射验证流程. Ⅰ. 可重构阵列架构及互连. 可重构阵列架构及互连的初步功能设计. PE 单元模块、 Router 互连结构设计. PE 阵列设计;可重构架构建模设计、仿真. 可重构阵列架构及互连的初步功能设计. RPU ( Reconfigurable Processing Unit )功能设计. 可重构阵列架构及互连的初步功能设计. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 面向视觉处理的 可重构阵列互连技术研究

面向视觉处理的可重构阵列互连技术研究

刘江明2014.04.15

Page 2: 面向视觉处理的 可重构阵列互连技术研究

目录

基于 RANSAC的图像匹配算法改进

可重构阵列架构及互连

视觉信息处理算法并行验证

Page 3: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构设计及算法映射验证流程

可重构阵列架构功能设计 视觉信息处理算法分析

可重构PE阵列设计 简单算法kernel并行映射

其他算法kernel并行映射其他模块设计

可重构阵列架构行为模型 视觉信息处理算法并行映射配置信息

可重构阵列架构硬件实现 视觉信息处理算法并行映射配置信息

联系优化

小范围联合仿真

行为级联合仿真验证

硬件设计流程

配套视觉信息处理算法映射过程

Page 4: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构及互连

可重构阵列架构及互连的初步功能设计

PE 阵列设计;可重构架构建模设计、仿真

PE 单元模块、 Router 互连结构设计

Page 5: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构及互连的初步功能设计

RPU

RPU_Controller

配置控制器(AHB Master)

配置字接口(AHB Slave)

数据控制器(AHB Master)

Shared Memory

PEA

CWI_FIFO_Empty

CWI_DATA

IS_READING_FIFO

PEA_EN

PEA_CP_INDEX

PEA_Finish

ADDR

DATA

REQ & GRANT

CW1

CP_LOAD_Finish

CP_INDEX

CP_ADDR

CP_DATA

CW2 & CW3DATA_LOAD/STORE_Finish SM_DATASM_ADDR

控制流 配置流 数据流

AHB总线

RPU( Reconfigurable Processing Unit )功能设计

Page 6: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构及互连的初步功能设计PEA( Processing Element Array )功能设计

PEA

SM_Arbiter

Conf_Arbiter

PEA_Sync

Array of PEs

PEA_EN

PEA_CP_INDEX

PEA_FINISH

CC_PEA_TOP

CC_PEA_TOP_VALID

CC_CP_VALID

CC_CP_DATA

CC_SEL_PE

CC_CP_ADDR

SM_ADDR[4]

SM_STORE_DATA[4]

SM_LOAD_DATA[4]

SM_RD_WR[4]

SM_REQ[4]

SM_GRANT[4]

SM_ADDR[16]

SM_STORE_DATA[16]

SM_LOAD_DATA[16]

SM_RD_WR[16]

SM_REQ[16]

SM_GRANT[16]

PE_EN

PE_FINISH[16]

CP_FINISH[16]

PE_CONF_VALID[16]

PE_CONF_READY[16]

PE_CONF_ADDR & DATA

Page 7: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构及互连的初步功能设计PE( Processing Element )功能设计

PE

PE_Controller

LSU

ALU

Conf_MEM

Router

PE_enPE_finish

PEA_CONF_ADDR

PEA_CONF_DATA

ALU_op

CP_finish

ALU_input (1,2,3)ALU_output

Conf_ADDR (_VALID)

Conf_DATA(_READY)

PEA_CONF_VALID

PEA_CONF_READY

WDATARDATA

RW

REQ

GRANT

ADDR

CP_enCP_index

ALU_en

ALU_finish

ADDR DATAADDR DATA

To Other PEs

Page 8: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构及互连

可重构阵列架构及互连的初步功能设计

PE 阵列设计;可重构架构建模设计、仿真

PE 单元模块、 Router 互连结构设计

Page 9: 面向视觉处理的 可重构阵列互连技术研究

PE 单元模块、 Router 互连结构设计PE( Processing Element )模块内部设计

PE

PE_Controller

LSU

ALU

Conf_MEM

Router

PE_enPE_finish

PEA_CONF_ADDR

PEA_CONF_DATA

ALU_op

CP_finish

ALU_input (1,2,3)ALU_output

Conf_ADDR (_VALID)

Conf_DATA(_READY)

PEA_CONF_VALID

PEA_CONF_READY

WDATARDATA

RW

REQ

GRANT

ADDR

CP_enCP_index

ALU_en

ALU_finish

ADDR DATAADDR DATA

To Other PEs

PE_Controller

Input 1和input 2的四个来源:(1) 来自shared memory (地址在配置包中指定)(2)来自自己或其他PE上一个机器周期的输出 (通过Router)(3)来自shared Memory (地址在配置包中指定)(4)来自寄存器堆(5)来自立即数另:Input 3为细粒度控制通路,只能来自于自己或其他PE的output2

0

1

2

3

4

…...

RF

15

RF的功能:RF[0]~RF[13] 用于所在PE的存储,只能被本PE访问RF[14],counter,记录这套配置包已经执行的机器周期数。RF[15],保存下一个机器周期要执行的配置是当前配置包的第几行。相当于Program Counter (PC),用于迭代

RF只能被当前PE访问,通过bit[5:1] = 11111, bit[10:6]就是

对应RF的编号

Conf_MEM

…...

Mem_bank1

根据地址的高两位决定是哪个bank

Mem_bank1

Mem_bank2

Mem_bank3

ALU

Input1 (32-bit) Input2 (32-bit) Input3 (1-bit)

output2 (1-bit)output1 (32-bit)

Page 10: 面向视觉处理的 可重构阵列互连技术研究

PE 单元模块、 Router 互连结构设计PE 阵列内部 Router 互连结构设计

n 后面接一个二维坐标 (x , y) ,表示当前 PE 要访问 PE 的相对位置。 x 表示目标 PE 相对当前 PE 在横向上移动的距离(正数向右,负数向左), y 表示纵向上移

动的距离(正数向上,负数向下)。 目前合法的 router 坐标有:

a) 相邻的四个 PE (上、下、左、右)。即 (0,1), (0,-1), (-1,0), (1,0) 。b) 距离为 2 的四个 PE (上跳、下跳、左跳、右跳)。即 (0,2), (0,-2), (-2,0), (2,0) 。c) 上一行和下一行的部分 PE (相邻行间互联)。对于 4*4 的阵列,目前合法的坐标有

(1,1), (1,-1), (-1,1), (-1,-1) 。d) 本 PE 在上一机器周期的输出数据。即 (0,0)

一个 PE 的输出可以被多个 PE 在下一个机器周期通过 router 同时访问。

Array of PEsPE11

PE12

PE13

PE14

PE21

PE22

PE23

PE24

PE31

PE32

PE33

PE34

PE41

PE42

PE43

PE44

-1, 1 0, 1 1, 1

-1, 0 0, 0 1, 0 2, 0

-1, -1 0, -1 1, -1

0, 2

-2, 0

0, 2

Page 11: 面向视觉处理的 可重构阵列互连技术研究

可重构阵列架构及互连

可重构阵列架构及互连的初步功能设计

PE 阵列设计;可重构架构建模设计、仿真

PE 单元模块、 Router 互连结构设计

Page 12: 面向视觉处理的 可重构阵列互连技术研究

PE 阵列设计;可重构架构建模设计、仿真接下来需要完成的工作

1. 基于 PE 单元、互连结构的 PE 阵列( 4*4 )设计

2. 可重构整体架构的模型搭建、仿真( SystemC & Verilog )

3. 在利用视觉处理算法仿真和验证的过程中,根据功能、性能的相关结果,对部分硬件结构进行优化(如双口 Shared Memory ,具有数据分发功能的平台级 Router )

Page 13: 面向视觉处理的 可重构阵列互连技术研究

视觉信息处理算法并行验证Ⅱ

• 运算密集( compute intensive )

• 数据密集( data intensive )• 控制密集( control intensive )

面向并行计算的算法应用类型划分,目前在学术界得到较广泛承认的是伯克利大学一份技术报告中提出的分类方法。根据:相似数据结构或访存行为—— 13 dwarfs

根据分类标准,将视觉信息处理算法合理的分类,并进而分割、映射,最终在可重构处理器上实现。

2D-DCT 等单 kernel 算法应用的并行映射

RANSAC 等多 kernel 算法应用的并行映射

与可重构平台的联合仿真验证

Page 14: 面向视觉处理的 可重构阵列互连技术研究

视觉信息处理算法并行验证

2D-DCT 等单 kernel 算法应用的并行映射

RANSAC 等多 kernel 算法应用的并行映射

与可重构平台的联合仿真验证

视觉信息处理算法并行验证

Page 15: 面向视觉处理的 可重构阵列互连技术研究

2D-DCT 等单 kernel 算法应用的并行映射算法应用并行映射流程

1. 分析算法,划分所属 kernel

2. 分析算法的计算特征(加减乘除、浮点 / 定点 / 整型、计算复杂度分析,数据密集型 / 计算密集型 / 控制密集型,计算量、访存量)

3. 分析算法的访存特征(各个 kernel 的访存复杂度分析、变量名称、数据量、输入 / 输出、最大并发访问数量)

4. 根据分析和可重构 PE 单元功能和互连,将算法主要部分( kernel )用数据流图(Data Flow Graph,DFG)的形式表达。

5. 数据准备和在 Shared Memory 中的安排

6. 将最终的并行映射表达成配置信息的形式

Page 16: 面向视觉处理的 可重构阵列互连技术研究

2D-DCT 等单 kernel 算法应用的并行映射完成 2D-DCT等算法的映射

1. 采用稠密矩阵乘法类映射的方法,映射为对应 DFG 图

2. 每两个 PE 一组进行一组乘、加运算

软流水 PE 功能演化及配置压缩过程 DFG 图 PEA各 PE 功能(每两个 PE 组成一组)

Page 17: 面向视觉处理的 可重构阵列互连技术研究

2D-DCT 等单 kernel 算法应用的并行映射完成 2D-DCT等算法的映射

3. 数据准备和在 Shared Memory 中 的安排

Page 18: 面向视觉处理的 可重构阵列互连技术研究

2D-DCT 等单 kernel 算法应用的并行映射完成 2D-DCT等算法的映射

4. 将最终的并行映射表达成配置信息的形式

Page 19: 面向视觉处理的 可重构阵列互连技术研究

视觉信息处理算法并行验证

2D-DCT 等单 kernel 算法应用的并行映射

RANSAC 等多 kernel 算法应用的并行映射

与可重构平台的联合仿真验证

视觉信息处理算法并行验证

Page 20: 面向视觉处理的 可重构阵列互连技术研究

RANSAC 等多 kernel 算法应用的并行映射正在进行 RANSAC等算法的映射1. 分析算法,划分所属 kernel:Map Reduce 映射化简 & Back-track

and Branch +Bound 回溯与分支限界。控制密集型 & 计算密集型2. 分析算法的计算特征

a) 热点 1 ( inv_matrix_3 ) 3*3 矩阵求逆( 1 次)

b) 热点 2 (mul_matrix_3 ) 两个 3*3 矩阵相乘( 1 次)

c) 热点 3 ( cal_distance ) 两点之间欧氏距离 di (次数:角点对数量)

d) 热点 4 ( count_inliers ) 统计内点数量:比较、 +1 (内点对数量次) 内点对欧氏距离 di 的总和 D :累加(内点对数量次)

e) 非热点 1 1*3 向量 ×3*3 矩阵(次数:角点对数量)

11 12

21 22

31 32

0

1 = 1 0

1

h h

x y w z h h

h h

Page 21: 面向视觉处理的 可重构阵列互连技术研究

RANSAC 等多 kernel 算法应用的并行映射接下进行 RANSAC等算法的映射

1. 分析算法的访存特征(各个 kernel 的访存复杂度分析、变量名称、数据量、输入 / 输出、最大并发访问数量)

2. 根据分析和可重构 PE 单元功能和互连,将算法主要部分( kernel )用数据流图(Data Flow Graph,DFG)的形式表达。

3. 数据准备和在 Shared Memory 中的安排

4. 将最终的并行映射表达成配置信息的形式

Page 22: 面向视觉处理的 可重构阵列互连技术研究

视觉信息处理算法并行验证

2D-DCT 等单 kernel 算法应用的并行映射

RANSAC 等多 kernel 算法应用的并行映射

与可重构平台的联合仿真验证

视觉信息处理算法并行验证

Page 23: 面向视觉处理的 可重构阵列互连技术研究

与可重构平台的联合仿真验证

1. 已完成 2D-DCT 在可重构阵列 C++ 行为模型平台的功能验证。

2. 接下来需要完成所有 6 种视觉信息算法在可重构阵列上的并行映射。

3. 完成视觉信息处理算法与可重构行为模型平台的联合仿真,相互验证功能正确,初步分析性能。并对算法映射、可重构硬件结构进行优化。

工作展望

Page 24: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

Ⅲ视觉信息处理算法并行验证

国内外发展及研究现状 & 算法基本原理基于约束随机采样和极大似然概率模型的优化改进

Page 25: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

最先由 Martin A. Fischler 和 Robert C. Bolles于 1981 年提出。

RANSAC 算法历经 30 多年演化,已经形成多个经典可靠的衍生算法。

RANSAC ( RANdom SAmple Consensus ,随机抽样一致性 )是一种基本子集的目标函数的优化方法 ,通过随机取样剔除局外点的影响 ,以期构建一个仅由局内点数据组成的基本子集 。

由两幅图像上匹配的特征点集估计变换矩阵 H时,由于特征点会受到一定噪声污染 , 同时还有可能存在误匹配 ,所以将特征点集划分两类 : 局内点数据和局外点数据 。

而局外点数据是误匹配的特征点对 。 对该问题解决的方案是采用 RANSAC 方法 ,通过重复地随机取样数据基本子集 , 利用基本子集估算变换矩阵 H。

国内外发展及研究现状 & 算法基本原理

Page 26: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

一般情况下 ,随机取样基本子集的数目必须确保在所有取样子集中 , 至少有一个数据基本子集包含的数据全部是局内点数据的概率大于 95 % 。基本子集数目 n (迭代次数)与至少取得一个良性取样子集的概率 Γ ( Γ >95% ) 之间关系的公式如下:

( 1 ) 其中 ε 表示局外点占数据集的比例 , m 表示基本子集中数据点的数目。

国内外发展及研究现状 & 算法基本原理

1- (1- (1- ) )m n

Page 27: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

RANSAC 基本流程

1. 提取特征2. 估计匹配特征点数据集3. 循环重复 n 次 ,如果 ε发生变化 , 使用公式 ( 1 ) 做相应调整

1 )在数据集中,随机取样基本子集 ;2 )由基本子集,计算变换矩阵 H;3 )评估基本矩阵 F 的相容性;

a) 对数据集中所有数据点 , 利用前面求出的变换矩阵 H计算代数误差

b) 计算与变换矩阵 H相关的目标函数(阈值) , 划分数据为局内点和局外点 。

4. 选择对应具有最多局内点数目的变换矩阵 H。5. 利用所有局内点重新计算变换矩阵 H。

国内外发展及研究现状 & 算法基本原理

Page 28: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

评估基本矩阵 F 的相容性 研究热点

Torr P H S, Zisserman A. MLESAC: A new robust estimator with application to estimating image geometry[J]. Computer Vision and Image Understanding, 2000, 78(1): 138-156.

提出了一种非常经典的 RANSAC 改进方法—— MLESAC 利用似然估计模型,转化为一个约束的最优化问题 同时假设匹配点受到高斯噪声的污染,并用高斯分布和均匀分布的模型

来描述测量值与真实值之间的误差 主要公式如下

国内外发展及研究现状 & 算法基本原理

Page 29: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

Nistér D. Preemptive RANSAC for live structure and motion estimation[J]. Machine Vision and Applications, 2005, 16(5): 321-329.

在MLESAC 的基础上进一步改进 正常计算投影变换时,一般 3 对匹配点。改进:利用 4 对

点,降低复杂计算的代价,进行预处理。 利用 Cauchy 来描述模型的误差利用似然估计模型,并为了减少计算瓶颈带来的计算困难,将投影误差分为 10 对点一组进行计算。

国内外发展及研究现状 & 算法基本原理

Page 30: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

Cheng L, Li M, Liu Y, et al. Remote sensing image matching by integrating affine invariant feature extraction and RANSAC[J]. Computers & Electrical Engineering, 2012, 38(4): 1023-1032.

在内外点划分过程中,对于判断阈值进行动态调整 调整主要依据当前点集的特征,主要分为两种动态调整算法

采用尽可能小的 threshold ,来获得几乎没有误差的内点对,并在迭代中,不断利用下面的公式,对 threshold 进行扩大,直到某个对应的threshold 下,内点对中出现无差点对。

采用尽可能大的一个 threshold ,来获得包含误差的内点对。利用内点中的正确率以及内点数量作为判断:如果正确率低于 40% ,那么就将 threshold 减半,并反复迭代,直到正确率达到所要求的值。

国内外发展及研究现状 & 算法基本原理

Page 31: 面向视觉处理的 可重构阵列互连技术研究

基于 RANSAC 的图像匹配算法改进

Yan Q, Xu Y, Yang X, et al. HEASK: Robust homography estimation based on appearance similarity and keypoint correspondences[J]. Pattern Recognition, 2014, 47(1): 368-387.

集成了基于像素的优点和基于特征的单应矩阵估计方法的优点 极大似然框架下结合了外观相似性和关键点对应关系的概率模

型 选择用拉普拉斯分布代替高斯分布来描述内点坐标误差分布,

在描述重尾分布上有更好的效果 采用 ECC (加强相关系数)描述参考图像与待变换图像之间的

相似性。

国内外发展及研究现状 & 算法基本原理

Page 32: 面向视觉处理的 可重构阵列互连技术研究

基于约束随机采样和极大似然概率模型的优化改进

1. 随机采样会浪费大量时间,约束条件下的随机采样,可以提高迭代效率。根据特点条件,过随机采样。

2. 结合极大似然概率模型,将 RANSAC 计算 H矩阵过程转化为最优化问题。采用拉普拉斯分布模型描述像素坐标误差。

3. 采用动态 threshold 的算法,找到最适合样本的 threshold ,进而获得最精确的内点集和计算结果 H。

4. 利用所有内点进行最精确的计算。

RANSAC 基本流程1. 提取特征2. 估计匹配特征点数据集3. 循环重复 n 次 ,如果 ε发生变化 , 使用公式 ( 1 ) 做相应调整

1 )在数据集中,随机取样基本子集 ;2 )由基本子集,计算变换矩阵 H;3 )评估基本矩阵 F 的相容性;

a) 对数据集中所有数据点 , 利用前面求出的变换矩阵 H计算代数误差 b) 计算与变换矩阵 H相关的目标函数(阈值) , 划分数据为局内点和局外点 。

• 选择对应具有最多局内点数目的变换矩阵 H。• 利用所有内点重新计算变换矩阵 H。

RANSAC 基本流程1. 提取特征2. 估计匹配特征点数据集3. 循环重复 n 次 ,如果 ε发生变化 , 使用公式 ( 1 ) 做相应调整

1 )在数据集中,随机取样基本子集 ;2 )由基本子集,计算变换矩阵 H;3 )评估基本矩阵 F 的相容性;

a) 对数据集中所有数据点 , 利用前面求出的变换矩阵 H计算代数误差 b) 计算与变换矩阵 H相关的目标函数(阈值) , 划分数据为局内点和局外点 。

• 选择对应具有最多局内点数目的变换矩阵 H。• 利用所有内点重新计算变换矩阵 H。

Page 33: 面向视觉处理的 可重构阵列互连技术研究

参考文献[1] D. Rossi , F. Campi , S. Spolzino , S. Pucillo and R. Guerrieri "A

heterogeneous digital signal processor for dynamically reconfigurable computing", IEEE J. Solid-State Circuits, vol. 45, no. 8, pp.1615 -1626 2010.

[2]Rossi D, Mucci C, Campi F, et al. Application space exploration of a heterogeneous run-time configurable digital signal processor[J]. Very Large Scale Integration (VLSI) Systems, IEEE Transactions on, 2013, 21(2): 193-205.

[3] Asanovic K, Bodik R, Catanzaro B C, et al. The landscape of parallel computing research: A view from Berkeley[R]. Technical Report UCB/EECS-2006-183, EECS Department, University of California, Berkeley, 2006.

Page 34: 面向视觉处理的 可重构阵列互连技术研究

参考文献[4] Asanovic K, Bodik R, Demmel J, et al. A view of the parallel

computing landscape[J]. Communications of the ACM, 2009, 52(10): 56-67.

[5] Fischler M A, Bolles R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[J]. Communications of the ACM, 1981, 24(6): 381-395.

[6] Wang H, Suter D. Robust adaptive-scale parametric model estimation for computer vision[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2004, 26(11): 1459-1474.

[7] Rousseeuw P J, Leroy A M. Robust regression and outlier detection[M]. John Wiley & Sons, 2005.

[8] Cheng C M, Lai S H. A consensus sampling technique for fast and robust model fitting[J]. Pattern Recognition, 2009, 42(7): 1318-1329.

Page 35: 面向视觉处理的 可重构阵列互连技术研究

THANKS!