HLS中SVD解最小二乘

本文介绍了在HLS库中如何使用SVD(奇异值分解)函数svd_balanced解决最小二乘问题。作者指出,尽管HLS库提供了一些函数,但某些功能仍需自行实现,例如不支持FLOAT&float相加的hls::add函数。对于不支持2维矩阵SVD分解的情况,作者建议使用svd_basic作为替代。同时,文中提供了最小二乘解的计算方法,并分享了在实现自定义库函数时遇到的问题及其解决方案。
摘要由CSDN通过智能技术生成

在HLS 库中,有很多很好的函数是没有说明的,需要我们去自己读源码,

当然也有很多有说明的函数,也需要我们去读源码!------忍不了的,可以自己写了。。。

svd这个函数在线代运算里是非常有用的,采用svd_balanced这个IP实现了求U ,V 的分解,注意这个函数用的时候,在头文件里作者直接例化了函数里的所有数组大小。相当于给FPGA里的存储单元分配了空间。对硬件程序员还是蛮有用的。

而看hls::add这个函数,是将两个mat元素相加,看源码会发现,这货还不支持FLOAT&float,呵呵,自己写了一个,为自己和赛灵思的懒惰羞愧中。。。


补充:由于SVD_pairs不支持2维矩阵的分解,所以采用SVDTraits::ARCH=0,即svd_basic,虽然优化程度不如SVD_pairs,总好过特例无法用。如果后期上设备时,有硬件限制,再改回来重新生成就好了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值