发明名称 一种基于GPU的L1最小化问题快速求解方法
摘要 一种基于GPU的L1最小化问题快速求解方法,在NVIDIA的Maxwell架构GPU设备上,采用CUDA并行计算模型,利用GPU新特征及内核合并和优化技术,提供了一种L1最小化问题快速求解方法。该求解方法中不仅包含了自适应优化的矢量运算、非转置矩阵矢量乘和转置矩阵矢量乘的设计,而且能够仅通过简单的CUDA线程分配设置不同,实现单个或并发多个L1最小化问题的并行求解。实验结果表明,本发明提出的求解方法是有效的,而且具有极高的并行度和适应性。与现有的并行求解方法相比,性能大幅度提高。
申请公布号 CN105739951A 申请公布日期 2016.07.06
申请号 CN201610116008.3 申请日期 2016.03.01
申请人 浙江工业大学 发明人 高家全;李泽界;王宇
分类号 G06F9/38(2006.01)I;G06F9/50(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 一种基于GPU的L1最小化问题快速求解方法,其特征在于,基于快速迭代收缩阈值算法,在NVIDIA的Maxwell架构GPU设备上,采用CUDA并行计算模型,并行加速求解L1最小化问题;设计了自适应优化的矢量运算、非转置矩阵矢量乘和转置矩阵矢量乘,并通过合理的CUDA线程分配实现了单个L1最小化问题并行求解器和并发多个L1最小化问题的并行求解器;所述求解方法的具体步骤如下:1)根据数据字典的维度和GPU设备的计算资源设置,完成线程束分配设置和线程分配设置;2)采用32字节对齐填充的方式,保存数据字典至0开始索引的按行存储的矩阵中;传输数据字典和矢量从主机端到GPU设备端;3)同时在主机端上,异步计算FISTA的输入参数;4)根据需要求解的L1最小化问题的个数,如果仅求解单个L1最小化问题,在GPU设备端上启发调用单个L1最小化问题并行求解器的设置;如果求解并发多个L1最小化问题,在GPU设备端上启发调用并发多个L1最小化问题的并行求解器的设置;5)在GPU设备端上,使用自适应优化的非转置矩阵矢量乘并行设计,实现FISTA中的非转置矩阵矢量乘;6)在GPU设备端上,使用自适应优化的转置矩阵矢量乘并行设计,实现FISTA中的转置矩阵矢量乘;7)在GPU设备端上,融合剩余的矢量操作,使用流式并行设计,融合方式计算FISTA中剩余的矢量操作;8)同时在主机端上,异步计算标量值;9)如果达到收敛条件,停止迭代,传输稀疏表示从GPU设备端到主机端,否则返回步骤5),继续迭代。
地址 310014 浙江省杭州市下城区潮王路18号