复杂Partial-Systolic QR分解
库:
定点设计师HDL支持/矩阵和线性代数矩阵分解金宝app
描述
的复杂Partial-Systolic QR分解块使用QR分解计算R和C=问”B,在那里问R=一个,一个和B复数矩阵。的最小二乘解一个x=B是x=R\C。R是一个上三角矩阵和问是一个正交矩阵。来计算C=问的,设置B单位矩阵。
当正则化参数非零,复杂Partial-Systolic QR分解块变换
就地来
和
就地来
在哪里λ正则化参数,QR经济规模QR分解的
,一个是一个米——- - - - - -n矩阵,p列的数量吗B,我n=眼睛(n)
,0氮、磷=0 (n,p)
。
例子
港口
输入
(我,:)- - - - - -矩阵的行一个
向量
矩阵的行一个,指定为一个向量。一个是一个米——- - - - - -n矩阵米≥2和n≥2。如果B单引号或双,一个必须是相同的数据类型吗B。如果一个是一个定点数据类型,一个必须签名,使用二进制小数点缩放和字长一样吗B。Slope-bias表示不支持定点数据类型。金宝app
数据类型:单
|双
|不动点
复数的支持:金宝app是的
B(我,:)- - - - - -矩阵的行B
向量
矩阵的行B,指定为一个向量。B是一个米——- - - - - -p矩阵米≥2。如果一个单引号或双,B必须是相同的数据类型吗一个。如果B是一个定点数据类型,B必须签名,使用二进制小数点缩放和字长一样吗一个。Slope-bias表示不支持定点数据类型。金宝app
数据类型:单
|双
|不动点
复数的支持:金宝app是的
validIn- - - - - -输入是否有效
布尔
标量
输入是否有效,指定为一个布尔标量。这个控制信号表示的数据(我,:)
和B(我,:)
输入端口是有效的。当这个值是1 (真正的
)和价值准备好了
是1 (真正的
),块上的值(我,:)
和B(我,:)
输入端口。当这个值是0 (假
),块忽略了输入样本。
后发送真正的
validIn
信号,可能会有一些延迟准备好了
被设置为假
。确保所有的数据处理,你必须等待准备好了
被设置为假
之前发送另一个真正的
validIn
信号。
数据类型:布尔
重新启动- - - - - -是否明确的内部状态
布尔
标量
是否明确的内部状态,指定为一个布尔标量。当这个值是1 (真正的
),块停止当前的计算和清除所有的内部状态。当这个值是0 (假
),validIn
值是1 (真正的
),开始一个新的子帧块。
数据类型:布尔
输出
R- - - - - -矩阵R
矩阵
大包装QR分解矩阵R,作为一个矩阵返回。R是一个上三角矩阵。矩阵的大小R是n——- - - - - -n。R有相同的数据类型一个。
数据类型:单
|双
|不动点
C- - - - - -矩阵C=问”B
矩阵
大包装QR分解矩阵C=问”B,作为一个矩阵或向量返回。C有相同的行数R。C有相同的数据类型B。
数据类型:单
|双
|不动点
validOut- - - - - -输出数据是否有效
布尔
标量
输出数据是否有效,作为一个布尔返回标量。这个控制信号表示当数据输出端口R
和C
是有效的。当这个值是1 (真正的
),块成功地计算R和C矩阵。当这个值是0 (假
),输出数据是无效的。
数据类型:布尔
准备好了- - - - - -块是否准备好了
布尔
标量
块是否准备好了,作为一个布尔返回标量。这个控制信号表示已经准备好新的输入数据块。当这个值是1 (真正的
),validIn
值是1 (真正的
),接受输入数据块的下一个时间步。当这个值是0 (假
),忽略了输入数据块的下一个时间步。
后发送真正的
validIn
信号,可能会有一些延迟准备好了
被设置为假
。确保所有的数据处理,你必须等待准备好了
被设置为假
之前发送另一个真正的
validIn
信号。
数据类型:布尔
参数
在A和B矩阵的行数- - - - - -A和B在输入矩阵的行数
4
(默认)|正整数值标量
输入矩阵的行数一个和B,指定为一个正整数值标量。
编程使用
块参数:米 |
类型:特征向量 |
价值观:正整数值标量 |
默认值:4 |
矩阵的列数- - - - - -在输入矩阵的列数
4
(默认)|正整数值标量
输入矩阵的列数一个,指定为一个正整数值标量。
编程使用
块参数:n |
类型:特征向量 |
价值观:正整数值标量 |
默认值:4 |
矩阵的列数B- - - - - -的列数输入矩阵B
1
(默认)|正整数值标量
输入矩阵的列数B,指定为一个正整数值标量。
编程使用
块参数:p |
类型:特征向量 |
价值观:正整数值标量 |
默认值:1 |
正则化参数- - - - - -正则化参数
0(默认)|负的标量
正则化参数,指定为负的标量。小,正面的正则化参数值可以提高问题的调节,减少估计的方差。虽然有偏见,但减少方差的估计往往导致一个更小的均方误差相比,最小二乘估计。
编程使用
块参数:regularizationParameter |
类型:特征向量 |
价值观:正整数值标量 |
默认值:0 |
算法
选择实现方法
Partial-systolic实现优先级计算的速度在空间限制,而破裂为代价实现优先考虑空间约束的操作速度。下面的表说明了矩阵分解实现之间的权衡和解决线性方程组。
实现 | 准备好了 | 延迟 | 区域 |
---|---|---|---|
收缩压 | C | O (n) | O (米n2) |
Partial-Systolic | C | O (米) | O (n2) |
Partial-Systolic遗忘因子 | C | O (n) | O (n2) |
破裂 | O (n) | O (锰2) | O (n) |
在哪里C是一个常数成正比的单词长度数据,米矩阵的行数一个,n矩阵的列数一个。
为额外的考虑为您的应用程序,选择一块看选择一块HDL-Optimized定点矩阵运算。
安巴AXI握手过程
这个块使用安巴AXI握手协议[1]。的有效/准备
握手过程是用来传输数据和控制信息。这种双向控制机制允许经理和下属控制速率信息管理者和下属之间移动。一个有效的
信号表明当数据是可用的。的准备好了
信号表示可以接受的数据块。数据传输发生只有当了有效的
和准备好了
信号是高。
块时间
的Partial-Systolic QR分解块接受和处理一个和B矩阵的行,行。后接受米行,块输出R和C矩阵和向量。partial-systolic实现使用级联结构,所以可以接受新矩阵块之前输入输出当前矩阵的结果。
例如,假设输入一个和B3 x3的矩阵。另外假设validIn
断言之前准备好了
,这意味着上游数据源是超过了QR分解。
在图中,
A1r1
第一行的第一个吗一个矩阵,R1
是第一个R矩阵,等等。validIn
来准备好了
——从一个成功的行输入块准备接受下一行。最后一行
validIn
来validOut
——从最后一行的输入块开始输出解决方案。
的Partial-Systolic Q-less QR分解块接受和处理矩阵一个行,行。后接受米行,块输出R矩阵作为单一向量。partial-systolic实现使用级联结构,所以可以接受新矩阵块之前输入输出当前矩阵的结果。
例如,假设输入一个矩阵是3×3。另外假设validIn
断言之前准备好了
,这意味着上游数据源是超过了QR分解。
在图中,
A1r1
第一行的第一个吗一个矩阵,R1
是第一个R矩阵,等等。validIn
来准备好了
——从一个成功的行输入块准备接受下一行。最后一行
validIn
来validOut
——从最后一行的输入块开始输出解决方案。
下表提供了细节的时机Partial-Systolic QR分解块。
块 | validIn 来准备好了 (周期) |
最后一行validIn 来validOut (周期) |
---|---|---|
真正Partial-Systolic QR分解 | 王+ 7 | (王+ 6)*n+ 6 |
复杂Partial-Systolic QR分解 | 王+ 9 | (王+ 7.5)* 2 *n+ 6 |
真正Partial-Systolic Q-less QR分解 | 王+ 7 | (王+ 6)*n+ 3 |
复杂Partial-Systolic Q-less QR分解 | 王+ 9 | (王+ 7.5)* 2 *n+ 3 |
在表中,米代表了在矩阵的行数一个,n矩阵的列数一个。王代表单词的长度一个。
如果数据类型的一个是固定的点呢王字长。
如果数据类型的一个是两倍,那么王是53。
如果数据类型的一个是单身,那么王是24。
硬件资源利用率
使用仿真软件这一块支持金宝appHDL代码生成金宝app®高密度脂蛋白工作流顾问。例如,看到的从仿真软件模型HDL代码生成和FPGA合成金宝app(高密度脂蛋白编码器)和为FPGA实现数字下变频器(DSP HDL工具箱)。
在R2023a:下面的表格显示了资源利用率的一个总结的结果。
这个示例中生成的数据合成Xilinx块®Zynq®7 ZC706评估板(2级)速度。
以下参数被用于合成。
块参数:
m = 10
n = 10
p = 1
矩阵一个尺寸:10 *
矩阵B维度:10-by-1
输入数据类型:
sfix18_En12
资源 | 使用 |
---|---|
附近地区 | 108464年 |
LUTRAM | 5000年 |
触发器 | 68404年 |
R2022b:下面的表结果post place-and-route资源利用率和时间总结,分别。
这个示例中生成的数据合成块在Xilinx Zynq UltraScale™+ RFSoC ZCU111评估板。Vivado合成工具®v.2020.2 (win64)。
以下参数被用于合成。
块参数:
m = 16
n = 16
p = 1
矩阵一个尺寸:16 x16
矩阵B维度:16-by-1
输入数据类型:
sfix16_En14
目标:频率300 MHz
资源 | 使用 | 可用 | 利用率(%) |
---|---|---|---|
CLB附近地区 | 319908年 | 425280年 | 75.22 |
CLB寄存器 | 250839年 | 850560年 | 29.49 |
需求方 | 0 | 4272年 | 0.00 |
块RAM瓷砖 | 0 | 1080年 | 0.00 |
URAM | 0 | 80年 | 0.00 |
价值 | |
---|---|
要求 | 3.3333 ns |
数据路径的延迟 | 3.299 ns |
松弛 | 0.016 ns |
时钟频率 | 301.45兆赫 |
引用
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
Slope-bias表示不支持定点数据类型。金宝app
HDL代码生成
生成FPGA和ASIC设计的Verilog和VHDL代码使用HDL编码器™。
影响高密度脂蛋白HDL编码器™提供了额外的配置选项和合成逻辑实现。
这一块有一个默认的HDL的架构。
一般 | |
---|---|
ConstrainedOutputPipeline | 寄存器的数量在输出中通过移动现有的延迟你的设计。分布式流水线不重新分配这些寄存器。默认值是 |
InputPipeline | 数量的输入管道阶段生成的代码插入。分布式流水线和限制输出管道可以移动这些寄存器。默认值是 |
OutputPipeline | 数量的输出管道阶段生成的代码插入。分布式流水线和限制输出管道可以移动这些寄存器。默认值是 |
金宝app只支持定点数据类型。
版本历史
介绍了R2020bR2023a:聪明的展开,提高资源的利用率
当你更新图,循环展开partial-systolic管道组成。这更新的内部架构消除了死在模拟和生成的代码,导致明显降低的数量所需的硬件资源。这一块模拟时钟和bit-true富达对库版本以前版本的这些块。
资源 | 使用R2022b |
使用R2023a |
---|---|---|
附近地区 | 177813年 | 108464年 |
LUTRAM | 6620年 | 5000年 |
触发器 | 113857年 | 68404年 |
这个示例中生成的数据合成块在Xilinx Zynq-7 ZC706评估板(2级)速度。
以下参数被用于合成。
块参数:
m = 10
n = 10
p = 1
矩阵一个尺寸:10 *
矩阵B维度:10-by-1
输入数据类型:
sfix18_En12
R2021a:高密度脂蛋白降低资源利用率
这个街区有一个改进的算法减少hardware-constrained目标平台上的资源利用率。
对MATLAB
你们有派对在联合国留置权,对应这个对MATLAB:
倒实行la对saisissez-la在fenetre德对MATLAB。Les navigateurs web不sup金宝appportent Les MATLAB命令。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。