System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算,具体来说涉及稀疏矩阵向量乘领域,更具体地说,涉及一种用于稀疏矩阵向量乘设计的神经网络模型。
技术介绍
1、在矩阵中,若数值为0的元素(以下简称零元)远远多于非0的元素(简称非零元),并且非零元分布没有规律时,则称该矩阵为稀疏矩阵(sparse matrix)。一些文献中,将零元的数目占大多数的矩阵称为稀疏矩阵;与之相反,若非零元的数目占大多数时,则称该矩阵为稠密矩阵。
2、稀疏矩阵向量乘法(sparse matrix-vector multiplication,简称spmv)是许多算法中的基石操作。在处理稀疏矩阵时,会采用与所选存储格式对齐的专用算法来有效执行此操作。在稀疏矩阵向量乘中,只有非零元参与计算,这避免了与零元进行不必要的乘法和加法操作。忽略零元的运算导致了显著的时间节省,特别是对于非常大的矩阵。几十年来,人们进行了大量努力来提升稀疏矩阵向量乘法的性能。这些努力包括提出新的稀疏矩阵格式、采用多种程序内核性能优化技术,以及应用自动性能调优(自动调优)。
3、目前工作对于稀疏矩阵向量乘程序设计的特征提取的限制主要体现在两方面,
4、一方面,是仍局限于人工的先验知识,例如smat、alphasparse等工作。涉及对稀疏模式的人工先验专家知识特征提取,例如使用输入矩阵行中非零元的平均数量来对搜索空间做进一步的剪枝,而使用统计性的先验知识丢失了原本稀疏矩阵的特征,而非零元的分布无法用统计性的特征完全表达出来。
5、另一方面,网络的设计未能将稀疏特征和内核优化策
6、如何使用神经网络提取稀疏矩阵的特性,以及用神经网络提取各阶段更准确的特征用于策略预测,仍然是领域的问题重点。
7、需要说明的是:本
技术介绍
仅用于介绍本专利技术的相关信息,以便于帮助理解本专利技术的技术方案,但并不意味着相关信息必然是现有技术。相关信息与本专利技术方案一同提交和公开,在没有证据表明相关信息已在本专利技术的申请日以前公开的情况下,相关信息不应被视为现有技术。
技术实现思路
1、因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种用于稀疏矩阵向量乘设计的神经网络模型。
2、本专利技术的目的是通过以下技术方案实现的:
3、根据本专利技术的第一方面,一种用于稀疏矩阵向量乘设计的神经网络模型,用于为稀疏矩阵向量乘程序设计相关的多个决策阶段分别提供用于决策的策略和价值,神经网络包括:特征提取器,用于从稀疏矩阵在前一阶段的阶段表达中提取阶段特征,阶段表达包括层次映射、非零元的绝对位置和相对位置,层次映射指示稀疏矩阵的非零元在计算硬件中的分配信息;策略网络,用于根据阶段特征确定当前阶段的策略,策略为预测的当前阶段采取各动作的概率。价值网络,用于根据阶段特征确定价值,价值为前一阶段的阶段表达对应状态的期望价值。
4、可选的,层次映射包括:内存映射,用于指示稀疏矩阵的每行非零元对应的内存索引;块映射,用于指示各个线程块分配到的非零元的内存索引;线程映射,用于指示各个线程分配到的非零元的内存索引。
5、可选的,特征提取器包括:第一特征提取模块,用于利用感知机从阶段表达记录的非零元的绝对位置和相对位置中提取第一中间特征;第一池化层,用于根据阶段表达记录的线程映射对第一中间特征进行第一平均池化,得到第二中间特征,第一平均池化时每个池化块的大小设为其对应线程分配到的数据在第一中间特征中相关的区域;第二特征提取模块,用于利用感知机从第二中间特征中提取第三中间特征;第二池化层,用于根据阶段表达记录的线程映射和块映射对第三中间特征进行第二平均池化,得到第四中间特征,第二平均池化时每个池化块的大小设为其对应线程块分配到的数据在第三中间特征中相关的区域;全局池化层,用于对第四中间特征进行全局平均池化,得到阶段特征。
6、可选的,所有决策阶段是共用的同一个神经网络,其中,策略网络设置多个策略头,每个策略头对应一个决策阶段,在预测一个阶段的策略时,其他阶段对应的策略头输出的策略会被屏蔽。
7、根据本专利技术的第二方面,提供一种基于强化学习的稀疏矩阵向量乘的程序设计系统,用于为在具有层次化结构的计算硬件构建程序,系统包括:稀疏矩阵表达模块,被配置为:在多个决策阶段中的每个阶段,确定稀疏矩阵对应的阶段表达;强化学习模块,被配置为:在第i阶段,利用如第一方面的神经网络从第i-1阶段的阶段表达中提取阶段特征,根据阶段特征确定第i阶段的策略和预测价值;获取基于蒙特卡洛树搜索算法为该稀疏矩阵维护的搜索树,并基于搜索树、策略和预测价值,确定第i阶段采取的动作;根据所有阶段采取的动作,构建引导稀疏矩阵向量乘在计算硬件上完成计算的程序代码,其中,i>0。
8、可选的,在每个阶段,利用前一阶段的阶段表达和当前阶段的策略空间,确定当前阶段采取的动作;根据当前阶段采取的动作,对前一阶段的阶段表达进行修改,得到当前阶段的阶段表达。
9、可选的,每颗搜索树中的奖励根据程序代码被执行后所获得的实际性能与该搜索树对应的历史参考性能来确定,其中,当实际性能超过历史参考性能时,授予正向奖励,否则授予负向奖励。
10、可选的,每颗搜索树对应的历史参考性能按照以下方式动态确定:为该搜索树维护一个专属的历史性能记录,以收集利用该搜索树构建的程序代码被执行后所获得的实际性能;从历史性能记录中,确定最接近预设的α分位数的值作为历史参考性能。
11、可选的,强化学习模块,还被配置为:维护用于收集程序代码被执行后对应样本的经验池,每个样本包括:稀疏矩阵、搜索树上记录的程序代码被执行后的实际性能以及基于搜索树为该稀疏矩阵确定的各阶段的动作概率;为每个样本关联其对应的损失,在经验池中设置多个优先级的存储区,每个存储区对应一个损失范围,越高优先级的存储区所对应的损失范围的下界越大;基于多个优先级的存储区,为越高优先级的存储区设置越大的采样概率,每次按采样概率从对应的存储区采样样本进行训练。
12、可选的,强化学习模块被配置为:为具有相同非零元分布形态的稀疏矩阵维护同一颗搜索树。
本文档来自技高网...【技术保护点】
1.一种用于稀疏矩阵向量乘设计的神经网络模型,用于为稀疏矩阵向量乘程序设计相关的多个决策阶段分别提供用于决策的策略和价值,所述神经网络模型包括:
2.根据权利要求1所述的神经网络模型,其特征在于,所述层次映射包括:
3.根据权利要求2所述的神经网络模型,其特征在于,特征提取器包括:
4.根据权利要求1-3之一所述的神经网络模型,其特征在于,所有决策阶段是共用的同一个神经网络,其中,策略网络设置多个策略头,每个策略头对应一个决策阶段,在预测一个阶段的策略时,其他阶段对应的策略头输出的策略会被屏蔽。
5.一种基于强化学习的稀疏矩阵向量乘的程序设计系统,用于为在具有层次化结构的计算硬件构建程序,所述系统包括:
6.根据权利要求5所述的系统,其特征在于,在每个阶段,利用前一阶段的阶段表达和当前阶段的策略空间,确定当前阶段采取的动作;
7.根据权利要求5所述的系统,其特征在于,每颗搜索树中的奖励根据程序代码被执行后所获得的实际性能与该搜索树对应的历史参考性能来确定,其中,当所述实际性能超过历史参考性能时,授予正向奖励,
8.根据权利要求7所述的系统,其特征在于,每颗搜索树对应的历史参考性能按照以下方式动态确定:
9.根据权利要求5-8之一所述的系统,其特征在于,强化学习模块,还被配置为:
10.根据权利要求5-8之一所述的系统,其特征在于,所述强化学习模块被配置为:为具有相同非零元分布形态的稀疏矩阵维护同一颗搜索树。
...【技术特征摘要】
1.一种用于稀疏矩阵向量乘设计的神经网络模型,用于为稀疏矩阵向量乘程序设计相关的多个决策阶段分别提供用于决策的策略和价值,所述神经网络模型包括:
2.根据权利要求1所述的神经网络模型,其特征在于,所述层次映射包括:
3.根据权利要求2所述的神经网络模型,其特征在于,特征提取器包括:
4.根据权利要求1-3之一所述的神经网络模型,其特征在于,所有决策阶段是共用的同一个神经网络,其中,策略网络设置多个策略头,每个策略头对应一个决策阶段,在预测一个阶段的策略时,其他阶段对应的策略头输出的策略会被屏蔽。
5.一种基于强化学习的稀疏矩阵向量乘的程序设计系统,用于为在具有层次化结构的计算硬件构建程序,所述系统包括:
6....
【专利技术属性】
技术研发人员:王耀宇,谭光明,肖俊敏,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。