CN117632081A - 一种用于gpu的矩阵数据处理系统 - Google Patents

一种用于gpu的矩阵数据处理系统 Download PDF

Info

Publication number
CN117632081A
CN117632081A CN202410096893.8A CN202410096893A CN117632081A CN 117632081 A CN117632081 A CN 117632081A CN 202410096893 A CN202410096893 A CN 202410096893A CN 117632081 A CN117632081 A CN 117632081A
Authority
CN
China
Prior art keywords
matrix
mnk
bit width
gpu
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410096893.8A
Other languages
English (en)
Other versions
CN117632081B (zh
Inventor
张金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Muxi Integrated Circuit Shanghai Co ltd
Original Assignee
Muxi Integrated Circuit Shanghai Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Muxi Integrated Circuit Shanghai Co ltd filed Critical Muxi Integrated Circuit Shanghai Co ltd
Priority to CN202410096893.8A priority Critical patent/CN117632081B/zh
Publication of CN117632081A publication Critical patent/CN117632081A/zh
Application granted granted Critical
Publication of CN117632081B publication Critical patent/CN117632081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本申请涉及数据处理技术领域,特别是涉及一种用于GPU的矩阵数据处理系统,系统包括:GPU、数据库、处理器和存储有计算机程序的存储器,计算机程序被处理器执行时,实现以下步骤:计算得到矩阵A中各元素值与矩阵B中各元素值的元素值乘积结果,进而结合矩阵C确定参考阶数,根据参考阶数,对元素值乘积结果和矩阵C中元素的尾数进行移位后相加,得到尾数相加结果,进而确定乘积元素,根据所有乘积元素,形成矩阵乘积结果。可知,通过限制加法器的位宽,对移位处理后的元素值乘积结果的尾数部分进行适应性舍弃,结合数据精度对模型准确率影响较小的先验信息,在相对低硬件面积的条件下,仍然能够保证人工智能模型的推理或者训练效果较好。

Description

一种用于GPU的矩阵数据处理系统
技术领域
本发明涉及数据处理技术领域,特别是涉及一种用于GPU的矩阵数据处理系统。
背景技术
目前,图形处理器GPU由于其较高的计算效率,常被应用于人工智能方向的模型训练及推理场景下,而人工智能模型中的数据通常是矩阵或者张量形式,而在不涉及通道间数据交互的情况下,张量形式的数据也可以视作多个矩阵数据,因此,矩阵数据的计算直接影响着人工智能模型的推理或者训练效果。
因此,现有技术提出了在GPU硬件层面部署矩阵计算核心,以提高矩阵相乘运算的效率,从而提高矩阵计算效率的方式,对于矩阵运算而言,相乘结果中的单个元素的获取方式为一矩阵中对应行向量和另一矩阵中对应列向量相乘,其本质上相当于多组元素相乘再相加,现有技术所提出的矩阵计算核心,通常采用融合乘加的方式进行计算,也即,第一组元素相乘后与偏置相加得到第一临时结果,第二组元素相乘后与第一临时结果相加,得到第二临时结果,以此类推,最终得到矩阵相乘计算结果,以得到能够满足IEEE754标准的计算结果。
然而,以上述计算方式所部署的矩阵计算核心将会使用较大的硬件面积,并且,逐次串行乘加计算难以提高运算效率。现有方法还提出另一种计算方式,也即,先将所有的元素相乘结果计算出来,再一次性把所有元素相乘结果和偏置相加,得到矩阵相乘计算结果,该计算方式由于需要进行舍入操作的次数较少,因此计算结果的精度更高,但是,也会导致加法器的位宽较大,同样会导致需要较大的硬件面积,难以在低硬件面积的条件下,保证人工智能模型的推理或者训练效果。
因此,如何在相对低硬件面积的条件下,保证人工智能模型的推理或者训练效果成为了亟待解决的问题。
发明内容
针对上述技术问题,本发明采用的技术方案为:
一种用于GPU的矩阵数据处理系统,所述系统包括:GPU、数据库、处理器和存储有计算机程序的存储器,其中,所述数据库中包括待进行矩阵乘积计算的矩阵A、矩阵B和矩阵C,所述矩阵A的尺寸为MK,所述矩阵B的尺寸为K/>N,所述矩阵C的尺寸为M/>N,所述GPU包括加法器和乘法器,当所述计算机程序被处理器执行时,实现以下步骤:
S101,根据矩阵A和矩阵B,通过所述乘法器计算得到矩阵A中第m行第k列元素值与矩阵B中第n列第k行元素值的元素值乘积结果dmnk,其中,m为[1,M]范围内的整数,n为[1,N]范围内的整数,k为[1,K]范围内的整数,所述元素值乘积结果dmnk的浮点数表示包括阶数Emnk和尾数fxmnk
S102,根据所有元素值乘积结果以及ECmn,确定参考阶数Emax=max(Emnk,ECmn),其中,ECmn为矩阵C中第m行第n列的元素对应的阶数。
S103,根据Emnk、ECmn和Emax,对Emnk所对应的尾数fxmnk以及ECmn所对应的尾数fcmn进行移位处理,得到fxmnk对应的移位后的尾数fymnk和fcmn对应的移位后的尾数fzmn
S104,针对任一组m和n,使用所述加法器对fzmn和所有fymnk进行相加处理,得到尾数相加结果fumn,其中,所述加法器的位宽设置为p。
S105,根据Emax和fumn,确定乘积元素hmn
S106,根据所有hmn,形成AB+C对应的矩阵乘积结果H。
本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种用于GPU的矩阵数据处理系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明提供了一种用于GPU的矩阵数据处理系统,所述系统包括:GPU、数据库、处理器和存储有计算机程序的存储器,其中,所述数据库中包括待进行矩阵乘积计算的矩阵A、矩阵B和矩阵C,所述矩阵A的尺寸为MK,所述矩阵B的尺寸为K/>N,所述矩阵C的尺寸为M/>N,所述GPU包括加法器和乘法器,当所述计算机程序被处理器执行时,实现以下步骤:根据矩阵A和矩阵B,通过所述乘法器计算得到矩阵A中第m行第k列元素值与矩阵B中第n列第k行元素值的元素值乘积结果dmnk,所述元素值乘积结果dmnk的浮点数表示包括阶数Emnk和尾数fxmnk,根据所有元素值乘积结果以及矩阵C中第m行第n列的元素对应的阶数ECmn,确定参考阶数Emax=max(Emnk,ECmn),根据Emnk、ECmn和Emax,对Emnk所对应的尾数fxmnk以及ECmn所对应的尾数fcmn进行移位处理,得到fxmnk对应的移位后的尾数fymnk和fcmn对应的移位后的尾数fzmn,针对任一组m和n,使用所述加法器对fzmn和所有fymnk进行相加处理,得到尾数相加结果fumn,其中,所述加法器的位宽设置为p,根据Emax和fumn,确定乘积元素hmn,根据所有hmn,形成A/>B+C对应的矩阵乘积结果H。
可知,在采用一次性将元素值乘积结果相加方式的基础上,将加法器位宽限制为p,从而对移位处理后的元素值乘积结果的尾数部分进行适应性舍弃,能够结合模型数据精度对模型训练或者推理的准确率影响较小的先验信息,在相对低硬件面积的条件下,仍然能够保证人工智能模型的推理或者训练效果较好。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种用于GPU的矩阵数据处理系统中计算机程序被处理器执行时的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供一种用于GPU的矩阵数据处理系统,所述系统包括:GPU、数据库、处理器和存储有计算机程序的存储器,其中,所述数据库中包括待进行矩阵乘积计算的矩阵A、矩阵B和矩阵C,所述矩阵A的尺寸为MK,所述矩阵B的尺寸为K/>N,所述矩阵C的尺寸为M/>N,所述GPU包括加法器和乘法器,参见图1,为本发明实施例提供的一种用于GPU的矩阵数据处理系统中计算机程序被处理器执行时的流程图,当所述计算机程序被处理器执行时,实现以下步骤:
S101,根据矩阵A和矩阵B,通过所述乘法器计算得到矩阵A中第m行第k列元素值与矩阵B中第n列第k行元素值的元素值乘积结果dmnk,其中,m为[1,M]范围内的整数,n为[1,N]范围内的整数,k为[1,K]范围内的整数,所述元素值乘积结果dmnk的浮点数表示包括阶数Emnk和尾数fxmnk
S102,根据所有元素值乘积结果以及ECmn,确定参考阶数Emax=max(Emnk,ECmn),其中,ECmn为矩阵C中第m行第n列的元素对应的阶数。
S103,根据Emnk、ECmn和Emax,对Emnk所对应的尾数fxmnk以及ECmn所对应的尾数fcmn进行移位处理,得到fxmnk对应的移位后的尾数fymnk和fcmn对应的移位后的尾数fzmn
S104,针对任一组m和n,使用所述加法器对fzmn和所有fymnk进行相加处理,得到尾数相加结果fumn,其中,所述加法器的位宽设置为p。
S105,根据Emax和fumn,确定乘积元素hmn
S106,根据所有hmn,形成AB+C对应的矩阵乘积结果H。
其中,矩阵A和矩阵B为进行相乘计算的乘数,矩阵C为偏置,在计算得到元素值乘积结果dmnk后,均需要进行规格化处理,在此不再赘述。
需要说明的是,本实施例中的浮点数表示还包括符号位,则根据Emax和fumn,以及对应的符号位,即可得到浮点数表示,也即乘积元素hmn
在本实施例中,对于矩阵A中的第m行元素与矩阵B中的第n列元素相乘,可以得到k对元素相乘的结果,而在一种实施方式中,实施者可以将k对元素划分为s组,则每组元素对包含k/s对元素,计算k/s对元素相乘结果之和作为对应组的元素值乘积结果,最终得到s个元素值乘积结果进行后续计算。该方式能够在矩阵尺寸较大时,有效精简计算量,提高运算效率。
可选的是,S104步骤还包括以下步骤:
S1041,将fzmn和所有fymnk中超过位宽p的位数舍弃,得到fzmn和所有fymnk分别对应的舍弃结果。
S1042,使用所述加法器对所有舍弃结果进行相加处理,得到尾数相加结果fumn
其中,当fzmn和所有fymnk中任一个所有位数均在位宽p之外,则将该尾数置0,当fzmn和所有fymnk中任一个部分位数在位宽p之外,则将该尾数在位宽p之外的尾数置0。
可选的是,p为[q1,q2]范围内的整数,其中,q1=max[λ,r1],λ为预设的标准尾数位宽,q2=r2,r1为第一预设参考值,r2为第二预设参考值。
其中,p的取值可以由实施者根据实际情况在[q1,q2]范围内灵活调整,λ为预设的标准尾数位宽,在本实施例中,乘积元素hmn为单精度浮点数,则λ设置为24bits,在一种实施方式中,乘积元素hmn也可以半精度浮点数,相应λ设置为11bits。
可选的是,r1和r2根据映射表确定,所述映射表包括加法器位宽与参考精度之间的映射关系。
其中,参考精度可以是指人工智能模型的测试精度,也即人工智能模型在测试集下的相对准确率。
可选的是,所述映射表的获取方式为:
S201,将所述加法器的位宽p设置为最大位宽p=max(p),使用所述加法器进行模型训练时的矩阵计算,得到所述模型的训练精度t。
S202,将所述加法器的位宽p更新为p=p-1,使用所述加法器进行模型训练时的矩阵计算,得到所述模型的训练精度tp,以tp/t作为p对应的参考精度T。
S203,返回执行步骤S202,直至p与max(Emnk)对应的尾数位宽相同,得到各个位宽p分别对应的参考精度。
S204,由各个位宽p及其分别对应的参考精度T,形成所述映射表。
其中,在本实施例中,max(p)可以是80bits,本实施例以模型训练场景为例,实施者可以根据实际情况调整为模型推理场景。
训练精度可以是指训练后的人工智能模型的测试准确率,参考精度可以是指训练精度相对于最大位宽情况下的相对准确率。
具体地,在[max(Emnk),max(p)]中的每个位宽取值,均有对应的参考精度。需要说明的是,本实施例以至少保证一个元素值相乘结果的尾数完整作为先验条件,在实际应用中,实施者也可以将迭代终止条件调整为任意大于0的位宽σ,也即直至p与σ相同。
可选的是,r1和r2根据映射表确定的过程包括:
S301,构建所述映射表对应的参考精度向量L=[T1,T2,…,Tv,…,TV],其中,Tv为所述映射表中第v个位宽对应的参考精度,v为[1,V]范围内的整数,V为所述映射表中包含位宽的总个数。
S302,根据L,计算得到正向梯度向量γ1=[α1,α2,…,αv,…,αV],其中,αv为第v个位宽对应的正向梯度,α12,αv=Tv-Tv-1
S303,在γ1中从左至右确定首个满足第一预设条件的正向梯度作为第一梯度,以所述第一梯度对应的位宽作为r1
S304,根据L,计算得到反向梯度向量γ2=[β1,β2,…,βv,…,βV],其中,βv为第v个位宽对应的反向梯度,βVV-1,βv=Tv-Tv+1
S305,在γ2中从右至左确定首个满足第二预设条件的反向梯度作为第二梯度,以所述第二梯度对应的位宽作为r2
其中,本实施例默认位宽越小,对应参考精度越低,因此,第一梯度能够对应于从位宽由最小值逐渐增加的情况下,参考精度开始明显上升的位宽,第二梯度能够对应于从位宽由最大值逐渐减小的情况下,参考精度开始明显下降的位宽。显然,在位宽由最小值逐渐增加的情况下,参考精度未明显上升的位宽所对应的参考精度均较小,不适合作为加法器位宽,在位宽由最大值逐渐减小的情况下,参考精度未明显下降的位宽所对应的参考精度均能达到较大水平,且对应的硬件面积也较大,同样不适合作为加法器位宽。
可选的是,所述第一预设条件为大于μ1,其中,μ1=(∑V v=1αv)/V。
其中,μ1为正向梯度向量γ1中所有元素值的均值,需要说明的是,实施者应当知晓,在实施过程也可以采用中位数等方式确定μ1,无论采用何种方式确定μ1,均在本发明保护范围之内。
可选的是,所述第二预设条件为大于μ2,其中,μ2=(∑V v=1βv)/V。
其中,μ2为反向梯度向量γ2中所有元素值的均值,需要说明的是,实施者应当知晓,在实施过程也可以采用中位数等方式确定μ2,无论采用何种方式确定μ2,均在本发明保护范围之内。
可选的是,q1设置为22bits,q2设置为30bits。
可选的是,p设置为24bits。
其中,在本实施例的实验场景下,所确定的q1为22bits,q2为30bits,p的最优取值为24bits。
具体地,实施者可以根据硬件面积和模型参考精度综合考虑,从而确定p的最优取值,在本实施例中,位宽对应的硬件面积area也可以通过预先构造的映射表确定,硬件面积area通过g(area)进行归一化评价,g(area)=[-1/(area2 max)]area2+1,其中,area取值范围为[0,areamax],areamax硬件最大可接受面积,则综合评价值θ可以表示为θ=λ1/>g(area)+λ2/>T,在本实施例中,λ1和λ2均设置为0.5,实施者可以根据实际情况调整λ1和λ2的取值,建议满足λ12=1,以满足归一化形式,确定max(θ)对应的位宽为p的取值,在本实施例中,max(θ)对应的位宽为24bits。
本发明提供了一种用于GPU的矩阵数据处理系统,所述系统包括:GPU、数据库、处理器和存储有计算机程序的存储器,其中,所述数据库中包括待进行矩阵乘积计算的矩阵A、矩阵B和矩阵C,所述矩阵A的尺寸为MK,所述矩阵B的尺寸为K/>N,所述矩阵C的尺寸为M/>N,所述GPU包括加法器和乘法器,当所述计算机程序被处理器执行时,实现以下步骤:根据矩阵A和矩阵B,通过所述乘法器计算得到矩阵A中第m行第k列元素值与矩阵B中第n列第k行元素值的元素值乘积结果dmnk,所述元素值乘积结果dmnk的浮点数表示包括阶数Emnk和尾数fxmnk,根据所有元素值乘积结果以及矩阵C中第m行第n列的元素对应的阶数ECmn,确定参考阶数Emax=max(Emnk,ECmn),根据Emnk、ECmn和Emax,对Emnk所对应的尾数fxmnk以及ECmn所对应的尾数fcmn进行移位处理,得到fxmnk对应的移位后的尾数fymnk和fcmn对应的移位后的尾数fzmn,针对任一组m和n,使用所述加法器对fzmn和所有fymnk进行相加处理,得到尾数相加结果fumn,其中,所述加法器的位宽设置为p,根据Emax和fumn,确定乘积元素hmn,根据所有hmn,形成A/>B+C对应的矩阵乘积结果H。可知,在采用一次性将元素值乘积结果相加方式的基础上,将加法器位宽限制为p,从而对移位处理后的元素值乘积结果的尾数部分进行适应性舍弃,能够结合模型数据精度对模型训练或者推理的准确率影响较小的先验信息,在相对低硬件面积的条件下,仍然能够保证人工智能模型的推理或者训练效果较好。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。

Claims (10)

1.一种用于GPU的矩阵数据处理系统,其特征在于,所述系统包括:GPU、数据库、处理器和存储有计算机程序的存储器,其中,所述数据库中包括待进行矩阵乘积计算的矩阵A、矩阵B和矩阵C,所述矩阵A的尺寸为MK,所述矩阵B的尺寸为K/>N,所述矩阵C的尺寸为M/>N,所述GPU包括加法器和乘法器,当所述计算机程序被处理器执行时,实现以下步骤:
S101,根据矩阵A和矩阵B,通过所述乘法器计算得到矩阵A中第m行第k列元素值与矩阵B中第n列第k行元素值的元素值乘积结果dmnk,其中,m为[1,M]范围内的整数,n为[1,N]范围内的整数,k为[1,K]范围内的整数,所述元素值乘积结果dmnk的浮点数表示包括阶数Emnk和尾数fxmnk
S102,根据所有元素值乘积结果以及ECmn,确定参考阶数Emax=max(Emnk,ECmn),其中,ECmn为矩阵C中第m行第n列的元素对应的阶数;
S103,根据Emnk、ECmn和Emax,对Emnk所对应的尾数fxmnk以及ECmn所对应的尾数fcmn进行移位处理,得到fxmnk对应的移位后的尾数fymnk和fcmn对应的移位后的尾数fzmn
S104,针对任一组m和n,使用所述加法器对fzmn和所有fymnk进行相加处理,得到尾数相加结果fumn,其中,所述加法器的位宽设置为p;
S105,根据Emax和fumn,确定乘积元素hmn
S106,根据所有hmn,形成AB+C对应的矩阵乘积结果H。
2.根据权利要求1所述的用于GPU的矩阵数据处理系统,其特征在于,S104步骤还包括以下步骤:
S1041,将fzmn和所有fymnk中超过位宽p的位数舍弃,得到fzmn和所有fymnk分别对应的舍弃结果;
S1042,使用所述加法器对所有舍弃结果进行相加处理,得到尾数相加结果fumn
3.根据权利要求1所述的用于GPU的矩阵数据处理系统,其特征在于,p为[q1,q2]范围内的整数,其中,q1=max[λ,r1],q2=r2,λ为预设的标准尾数位宽,r1为第一预设参考值,r2为第二预设参考值。
4.根据权利要求3所述的用于GPU的矩阵数据处理系统,其特征在于,r1和r2根据映射表确定,所述映射表包括加法器位宽与参考精度之间的映射关系。
5.根据权利要求4所述的用于GPU的矩阵数据处理系统,其特征在于,所述映射表的获取方式为:
S201,将所述加法器的位宽p设置为最大位宽p=max(p),使用所述加法器进行模型训练时的矩阵计算,得到所述模型的训练精度t;
S202,将所述加法器的位宽p更新为p=p-1,使用所述加法器进行模型训练时的矩阵计算,得到所述模型的训练精度tp,以tp/t作为p对应的参考精度T;
S203,返回执行步骤S202,直至p与max(Emnk)对应的尾数位宽相同,得到各个位宽p分别对应的参考精度;
S204,由各个位宽p及其分别对应的参考精度T,形成所述映射表。
6.根据权利要求5所述的用于GPU的矩阵数据处理系统,其特征在于,r1和r2根据映射表确定的过程包括:
S301,构建所述映射表对应的参考精度向量L=[T1,T2,…,Tv,…,TV],其中,Tv为所述映射表中第v个位宽对应的参考精度,v为[1,V]范围内的整数,V为所述映射表中包含位宽的总个数;
S302,根据L,计算得到正向梯度向量γ1=[α1,α2,…,αv,…,αV],其中,αv为第v个位宽对应的正向梯度,α12,αv=Tv-Tv-1
S303,在γ1中从左至右确定首个满足第一预设条件的正向梯度作为第一梯度,以所述第一梯度对应的位宽作为r1
S304,根据L,计算得到反向梯度向量γ2=[β1,β2,…,βv,…,βV],其中,βv为第v个位宽对应的反向梯度,βVV-1,βv=Tv-Tv+1
S305,在γ2中从右至左确定首个满足第二预设条件的反向梯度作为第二梯度,以所述第二梯度对应的位宽作为r2
7.根据权利要求6所述的用于GPU的矩阵数据处理系统,其特征在于,所述第一预设条件为大于μ1,其中,μ1=(∑V v=1αv)/V。
8.根据权利要求6所述的用于GPU的矩阵数据处理系统,其特征在于,所述第二预设条件为大于μ2,其中,μ2=(∑V v=1βv)/V。
9.根据权利要求3所述的用于GPU的矩阵数据处理系统,其特征在于,q1设置为22bits,q2设置为30bits。
10.根据权利要求9所述的用于GPU的矩阵数据处理系统,其特征在于,p设置为24bits。
CN202410096893.8A 2024-01-24 2024-01-24 一种用于gpu的矩阵数据处理系统 Active CN117632081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410096893.8A CN117632081B (zh) 2024-01-24 2024-01-24 一种用于gpu的矩阵数据处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410096893.8A CN117632081B (zh) 2024-01-24 2024-01-24 一种用于gpu的矩阵数据处理系统

Publications (2)

Publication Number Publication Date
CN117632081A true CN117632081A (zh) 2024-03-01
CN117632081B CN117632081B (zh) 2024-04-19

Family

ID=90035877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410096893.8A Active CN117632081B (zh) 2024-01-24 2024-01-24 一种用于gpu的矩阵数据处理系统

Country Status (1)

Country Link
CN (1) CN117632081B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118133574A (zh) * 2024-05-06 2024-06-04 沐曦集成电路(上海)有限公司 一种sram生成系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101929847B1 (ko) * 2018-05-15 2018-12-17 주식회사 퓨쳐디자인시스템 희소행렬 연산 방법과 장치
CN109739555A (zh) * 2019-01-04 2019-05-10 腾讯科技(深圳)有限公司 包括乘累加模块的芯片、终端及控制方法
CN110050256A (zh) * 2016-12-07 2019-07-23 微软技术许可有限责任公司 用于神经网络实现的块浮点
CN111752618A (zh) * 2019-03-29 2020-10-09 英特尔公司 浮点加法器的交错流水线
CN112130805A (zh) * 2020-09-22 2020-12-25 腾讯科技(深圳)有限公司 包括浮点加法器的芯片、设备及浮点运算的控制方法
US20210110508A1 (en) * 2017-05-05 2021-04-15 Intel Corporation Dynamic precision management for integer deep learning primitives
US20220366006A1 (en) * 2019-10-25 2022-11-17 Anhui Cambricon Information Technology Co., Ltd. Computing apparatus and method for vector inner product, and integrated circuit chip
CN115390790A (zh) * 2022-08-01 2022-11-25 中国人民解放军国防科技大学 一种具有融合精度转换功能的浮点乘加单元及其应用方法
US20230376274A1 (en) * 2023-07-31 2023-11-23 Intel Corporation Floating-point multiply-accumulate unit facilitating variable data precisions

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110050256A (zh) * 2016-12-07 2019-07-23 微软技术许可有限责任公司 用于神经网络实现的块浮点
US20210110508A1 (en) * 2017-05-05 2021-04-15 Intel Corporation Dynamic precision management for integer deep learning primitives
KR101929847B1 (ko) * 2018-05-15 2018-12-17 주식회사 퓨쳐디자인시스템 희소행렬 연산 방법과 장치
CN109739555A (zh) * 2019-01-04 2019-05-10 腾讯科技(深圳)有限公司 包括乘累加模块的芯片、终端及控制方法
US20210326118A1 (en) * 2019-01-04 2021-10-21 Tencent Technology (Shenzhen) Company Limited Chip including multiply-accumulate module, control method, electronic device, and storage medium
CN111752618A (zh) * 2019-03-29 2020-10-09 英特尔公司 浮点加法器的交错流水线
US20220366006A1 (en) * 2019-10-25 2022-11-17 Anhui Cambricon Information Technology Co., Ltd. Computing apparatus and method for vector inner product, and integrated circuit chip
CN112130805A (zh) * 2020-09-22 2020-12-25 腾讯科技(深圳)有限公司 包括浮点加法器的芯片、设备及浮点运算的控制方法
CN115390790A (zh) * 2022-08-01 2022-11-25 中国人民解放军国防科技大学 一种具有融合精度转换功能的浮点乘加单元及其应用方法
US20230376274A1 (en) * 2023-07-31 2023-11-23 Intel Corporation Floating-point multiply-accumulate unit facilitating variable data precisions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
钟小艳;苏涛;孙多;: "FPGA中高速浮点运算的设计与实现", 火控雷达技术, no. 02, 15 June 2009 (2009-06-15), pages 50 - 54 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118133574A (zh) * 2024-05-06 2024-06-04 沐曦集成电路(上海)有限公司 一种sram生成系统
CN118133574B (zh) * 2024-05-06 2024-07-19 沐曦集成电路(上海)有限公司 一种sram生成系统

Also Published As

Publication number Publication date
CN117632081B (zh) 2024-04-19

Similar Documents

Publication Publication Date Title
CN117632081B (zh) 一种用于gpu的矩阵数据处理系统
CN107340993B (zh) 运算装置和方法
CN109934331B (zh) 用于执行人工神经网络正向运算的装置和方法
US4949296A (en) Method and apparatus for computing square roots of binary numbers
WO2019238029A1 (zh) 卷积神经网络系统和卷积神经网络量化的方法
CN110008952B (zh) 一种目标识别方法及设备
CN113222102B (zh) 用于神经网络模型量化的优化方法
CN110109646B (zh) 数据处理方法、装置和乘加器及存储介质
US20230053261A1 (en) Techniques for fast dot-product computation
CN112596697A (zh) 使用分解的分量数字的浮点乘法硬件
CN113392953A (zh) 用于对神经网络中卷积层进行剪枝的方法和装置
US20220066739A1 (en) Method and apparatus for data processing operation
CN115186802A (zh) 基于卷积神经网络的块稀疏方法、装置及处理单元
CN110503182A (zh) 深度神经网络中的网络层运算方法及装置
CN117908835B (zh) 一种基于浮点数计算能力加速sm2国密算法的方法
WO2021044227A1 (en) Neural network circuitry having floating point format with asymmetric range
CN111461302A (zh) 一种基于卷积神经网络的数据处理方法、设备及存储介质
US20210044303A1 (en) Neural network acceleration device and method
CN110751259A (zh) 深度神经网络中的网络层运算方法及装置
CN113283591A (zh) 基于Winograd算法和近似乘法器的高效卷积实现方法及装置
US20220291899A1 (en) Processing unit, method and computer program for multiplication
JPH0687219B2 (ja) 制御方法
US11157594B2 (en) Matrix multiplication in hardware using modular math
EP4109341B1 (en) Method with partial sum compression
JP7506276B2 (ja) 半導体ハードウェアにおいてニューラルネットワークを処理するための実装および方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant