[发明专利]一种基于GPU的L1最小化问题快速求解方法在审
申请号: | 201610116008.3 | 申请日: | 2016-03-01 |
公开(公告)号: | CN105739951A | 公开(公告)日: | 2016-07-06 |
发明(设计)人: | 高家全;李泽界;王宇 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/50 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu l1 最小化 问题 快速 求解 方法 | ||
一种基于GPU的L1最小化问题快速求解方法,在NVIDIA的Maxwell架构GPU设备上,采用CUDA并行计算模型,利用GPU新特征及内核合并和优化技术,提供了一种L1最小化问题快速求解方法。该求解方法中不仅包含了自适应优化的矢量运算、非转置矩阵矢量乘和转置矩阵矢量乘的设计,而且能够仅通过简单的CUDA线程分配设置不同,实现单个或并发多个L1最小化问题的并行求解。实验结果表明,本发明提出的求解方法是有效的,而且具有极高的并行度和适应性。与现有的并行求解方法相比,性能大幅度提高。
技术领域
本发明涉及信号处理和人脸识别领域,更具体地涉及一种基于GPU的L1最小化问题快速求解方法。
背景技术
L1最小化问题为min||x||
其中,λ是标量权值。
随着问题规模的增长,算法的执行效率很大程度上被消减。为提高其效率,一个有效的途径就是将这些算法移植到分布式或多核的架构上,例如目前流行的图形处理单元(GPU)。自从NVIDIA公司在2007年介绍了CUDA编程模型以来,基于GPU加速数据处理的研究已成为人们研究的热点。
大多数L1最小化算法,其运算主要由稠密的矩阵矢量乘和矢量操作组成。由于CUBLAS库中已包含这些运算的高效实现,所以现有基于GPU加速的L1最小化算法主要基于CUBLAS库。然而,通过测试发现,CUBLAS中的矩阵矢量乘方法随着矩阵行数或者列数的增长,会产生性能波动,且最大最小性能差距显著。CUBLAS不支持融核,面对并发多个L1最小化问题时,无法充分利用现有GPU的新的特征,且不能最优化地配置整个GPU的计算资源,存在较大额外开销。因此,本发明在Maxwell架构的GPU设备上,基于快速迭代收缩阈值法,通过充分挖掘利用GPU硬件资源和计算能力,提供一种L1最小化问题的高效并行求解方法。
发明内容
本发明的目的是针对现有方法的不足,通过挖掘利用GPU硬件资源和计算能力,提供一种L1最小化问题的高效并行求解方法。本发明给出了两个求解器,单个L1最小化问题并行求解器和并发多个L1最小化问题的并行求解器,其中包括自适应优化的非转置矩阵矢量乘并行设计、转置矩阵矢量乘并行设计和流式并行设计。
为达到上述目的,本发明采用了以下技术方案。
快速迭代收缩阈值法(FISTA)是一种迭代收缩阈值法,能够解决无约束的基追踪去噪问题,且主要涉及矩阵矢量乘和矢量操作,易并行。因此本发明基于FISTA,在NVIDIA的Maxwell架构GPU设备上,采用CUDA并行计算模型,并行加速求解L1最小化问题。设计了自适应优化的矢量运算、非转置矩阵矢量乘和转置矩阵矢量乘,并通过合理的CUDA线程分配实现了单个L1最小化问题并行求解器和并发多个L1最小化问题的并行求解器。
本求解方法发明的具体步骤为:
1)根据数据字典的维度和GPU设备的计算资源设置,完成线程束分配设置和线程分配设置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610116008.3/2.html,转载请声明来源钻瓜专利网。