System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体提供一种面向沐曦曦云c500的归约类核函数优化方法。
技术介绍
1、mxmaca是由沐曦推出的一种采用通用并行计算架构解决复杂计算问题的运算平台。它包含了自研指令集架构(isa)以及gpu内部的并行计算引擎,集成了通用计算和机器学习框架,为各个应用领域的专家们提供了高灵活性和高性能的开放式运算平台。
2、该运算平台提供了一种简单易用的类c编程语言,供用户为mxmaca架构编写程序,使其在metax gpu处理器上以超高效率运行。该编程语言语法简单灵活,易读易写,并且表达能力出众;同时能够兼容主流的c/c++异构计算语言,使得用户获得便捷的软件适配与高效的客户算子开发。
3、核函数作为深度学习算法中的关键组件,需要满足特定的数学条件以确保算法的有效性。基于mxmaca架构上的核函数的编写是一个具有挑战性的任务,需要考虑到对称性、半正定性、参数选择、计算复杂性、泛化能力和可解释性等多个方面,才能充分发挥mxmaca运算平台的硬件并行加速性能。
4、当前核函数编写与优化方法全部适用于英伟达cuda生态,而基于mxmaca架构进行核函数编写与优化,科研人员必须通过深入研究和不断的实践,才可以逐步提高核函数的编写质量和性能,否则无法最大限度发挥mxmaca运算平台的计算性能。这要求科研人员具备深厚的数学和统计学背景,以理解和构建合适的核函数,并且需要不断地迭代测试,才能最终确定核函数优化参数,过程漫长,耗费人力较多。
5、其中,归约类核函数涉及对一组数据执行某种聚合
6、归约类核函数的并行化相对复杂,需要考虑如何在多个线程间有效地分摊计算任务,并设计合适的归约策略(如分阶段归约、树形归约等)来合并中间结果,同时避免数据竞争和确保正确性。
技术实现思路
1、为了克服上述缺陷,提出了本专利技术,以解决在沐曦曦云c500芯片上处理规约类核函数时,不仅要面临在mxmaca架构确定核函数优化参数过程漫长,耗费人力较多的问题,还要面临并行化规约复杂的技术问题。
2、本专利技术提供一种面向沐曦曦云c500的归约类核函数优化方法,包括以下步骤:
3、s1:获取待执行规约主体的数据长度n,并选择数据长度n大于预设值的规约主体执行以下步骤s2-s5;
4、s2:将核函数中线程数block_size设为1024,block_size中每个线程的向量寄存器容量为64*4b;
5、s3:计算每个线程需要处理的数据个数num=n/1024;
6、s4:根据所述num确定每个线程的处理次数w、向量长度x、并行处理向量个数z及最后一次并行处理向量个数z’;
7、s5:根据向量长度x、并行处理向量个数z、最后一次并行处理向量个数z’以及每个线程的处理次数w,设置核函数启动参数,对每个线程中的向量内、向量间、每个线程的处理次数、所有线程的数据依次进行规约操作。
8、进一步,所述步骤s4包括步骤:
9、s41:计算每个线程的向量长度x与向量总个数y,其中x*y=num,x为2的整数次方且x≤64,y取满足条件的最小整数值;
10、s42:判断x*y≤64是否成立,若是,则并行处理向量个数z=y,每个线程的处理次数w=1,并确定最后一次并行处理向量个数z’=z;若否,则并行处理向量个数z=64/x,得到每个线程的处理次数w=y/z,w根据进一法取整数值,并确定最后一次并行处理向量个数z’=y-(w-1)*z。
11、进一步,所述步骤s5包括步骤:
12、s51:根据向量长度x和并行处理向量个数z对每个线程中前w-1次处理的向量内和向量间的数据并行进行归约操作,根据向量长度x和最后一次并行处理向量个数z’对每个线程中第w次处理的向量内和向量间的数据并行进行归约操作;
13、s52:根据每个线程的处理次数w,将每个线程所有处理次数的规约结果并行进行规约操作;
14、s53:根据单个warp包含64个线程,将1024个线程排序并分割为多个warp,将每个warp内所有线程的数据并行进行归约操作;
15、s54:将所有warp的数据进行归约操作。
16、进一步,对每个线程中每次处理的向量内和向量间的数据并行进行归约操作包括:
17、对当前block中的每个线程的地址进行索引;
18、对每个线程中的每个向量的地址进行索引;
19、根据索引的地址将每个线程中的向量内和向量间数据并行进行归约操作。
20、本专利技术的工作原理和有益效果为:
21、在实施本专利技术的技术方案中,根据沐曦曦云c500芯片特性与mxmaca架构,对于输入的数据量较大的规约主体,在一个block中的1024个线程内根据规约主体的数据长度,实现配置参数的优化,通过计算每个线程内处理的数据量,再将数据量根据每个线程的容量大小进行合理的向量长度和向量个数的划分,实现效果较好的并行规约运算,有助于研发人员在沐曦曦云c500芯片快速进行现有算子的归约优化和新算子的编写工作,大幅提高核函数开发效率。
本文档来自技高网...【技术保护点】
1.一种面向沐曦曦云C500的归约类核函数优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种面向沐曦曦云C500的归约类核函数优化方法,其特征在于,所述步骤S4包括步骤:
3.根据权利要求1所述的一种面向沐曦曦云C500的归约类核函数优化方法,其特征在于,所述步骤S5包括步骤:
4.根据权利要求3所述的一种面向沐曦曦云C500的归约类核函数优化方法,其特征在于,对每个线程中每次处理的向量内和向量间的数据并行进行归约操作包括:
【技术特征摘要】
1.一种面向沐曦曦云c500的归约类核函数优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种面向沐曦曦云c500的归约类核函数优化方法,其特征在于,所述步骤s4包括步骤:
3.根据权利要求1所述的一种...
【专利技术属性】
技术研发人员:韩福海,苏文星,付龙,宋晔,刘丽欣,所光,齐璇,
申请(专利权)人:麒麟软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。