CN116055003A - 数据最优传输方法、装置、计算机设备和存储介质 - Google Patents
数据最优传输方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116055003A CN116055003A CN202310012870.XA CN202310012870A CN116055003A CN 116055003 A CN116055003 A CN 116055003A CN 202310012870 A CN202310012870 A CN 202310012870A CN 116055003 A CN116055003 A CN 116055003A
- Authority
- CN
- China
- Prior art keywords
- row
- data
- data transmission
- rescaling
- transmission matrix
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 448
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 239000011159 matrix material Substances 0.000 claims abstract description 331
- 238000004590 computer program Methods 0.000 claims abstract description 41
- 238000009826 distribution Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000009467 reduction Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000002610 neuroimaging Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及一种数据最优传输方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取待传输数据的数据传输矩阵;对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中;将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;根据目标数据传输矩阵完成数据最优传输操作。采用本方法能够提高数据传输时内存访问速率以及内存计算单元利用率。
Description
技术领域
本申请涉及数据传输技术领域,特别是涉及一种数据最优传输方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
近年来,数据传输在各个领域,例如计算生物学、计算成像、神经成像、自然语言处理、监督学习中都有着广泛应用,成为了各个领域利用机器学习的常用工具。
然而在传统数据传输方法中,数据传输的速度容易受制于内存访问速度的限制,内存访问速度较低导致内存中计算单元的利用率下降,影响了数据传输的速度。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据传输时内存访问速率、内存计算单元利用率的数据最优传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据最优传输方法。所述方法包括:
获取待传输数据的数据传输矩阵;
对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中;
将所述更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
根据目标数据传输矩阵完成数据最优传输操作。
在其中一个实施例中,所述对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,包括:
获取所述每一行各行数据的列重缩放因子;
根据各所述列重缩放因子对所述每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据;
将所述每一行的行数据中经过所述列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子;
基于所述行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
在其中一个实施例中,所述方法还包括:
若所述比较结果不满足所述预设迭代阈值,则根据预设列求和数组中存储的行数据得到所述更新后的数据传输矩阵中每一行的行数据的列重缩放因子;
将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵,返回执行对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至所述比较结果满足所述预设迭代阈值为止。
在其中一个实施例中,当数据传输时访问的内存类型为中央处理器内存时,所述待传输数据的数据传输矩阵由多个数据构成。
在其中一个实施例中,当数据传输时访问的内存类型为图形处理器内存时,所述待传输数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成;
所述对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中,包括:
确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵;
根据更新后的数据传输子矩阵得到所述数据传输矩阵的每一行的行数据;
对所述数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中。
在其中一个实施例中,所述将所述每一行的行数据中经过所述列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子,包括:
对所述每一行的行数据中经过所述列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;
根据所述行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
在其中一个实施例中,所述根据预设列求和数组中存储的行数据得到所述更新后的数据传输矩阵中每一行的行数据的列重缩放因子,包括:
根据预设列求和数组中存储的行数据得到所述更新后的每一行的行数据对应的列总和;
根据所述列总和与所述每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
第二方面,本申请还提供了一种数据最优传输装置。所述装置包括:
矩阵获取模块,用于获取待传输数据的数据传输矩阵;
交织缩放模块,用于对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中;
比较模块,用于将所述更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
数据传输模块,用于根据目标数据传输矩阵完成数据最优传输操作。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据最优传输方法的具体步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据最优传输方法的具体步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据最优传输方法的具体步骤。
上述数据最优传输方法、装置、计算机设备、存储介质和计算机程序产品,在得到待传输数据的数据传输矩阵后,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,通过交织执行列重缩放操作和行重缩放操作,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中,预设列求和数组可以为下一次迭代进行列重缩放提供需要的列总和,减少了执行数据传输时从内存中访问数据的次数,提高数据传输时内存访问速率以及内存计算单元利用率。
附图说明
图1为一个实施例中数据最优传输方法的应用环境图;
图2为一个实施例中数据最优传输方法的流程示意图;
图3为一个实施例中对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵步骤的流程示意图;
图4为另一个实施例中数据最优传输方法的流程示意图;
图5为一个实施例中当数据传输时访问的内存类型为中央处理器内存时,数据传输的过程示意图;
图6为一个实施例中对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中步骤的流程示意图;
图7为一个实施例中当数据传输时访问的内存类型为图形处理器内存时,数据传输的过程示意图;
图8为一个实施例中数据最优传输方法装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据最优传输方法,可以应用于如图1所示的应用环境中。其中,数据传输系统102通过网络与服务器104进行通信。数据存储系统可以存储数据传输系统102需要处理的数据。数据存储系统可以集成在数据传输系统102上,也可以放在云上或其他网络服务器上。数据传输系统102从服务器104获取待传输数据的数据传输矩阵,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中,将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵,数据传输系统102根据目标数据传输矩阵完成数据最优传输操作。其中,数据传输系统102可以集成在终端或服务器上,其中终端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据最优传输方法,以该方法应用于图1中的数据传输系统为例进行说明,包括以下步骤:
步骤202,获取待传输数据的数据传输矩阵。
其中,最优传输最开始由Monge于1781年提出,一个典型的Monge问题是考虑将一堆具有一定形状的沙子搬运到指定的另外一个形状所需要的具有最小代价的搬运方法,在数据传输中,最优传输尤其是不平衡最优传输(UOT)作为许多基本问题的使能算法得到不断发展,并成为利用机器学习的更广泛应用领域的工具,例如计算生物学、计算成像、神经成像、自然语言处理、监督学习等。
将有最优传输需求的数据确定为待传输数据,可以理解的,待传输数据的具体数据内容可以根据应用领域的不同而不同,例如在文本分类领域,待传输数据即可为文本数据,在计算成像领域,待传输数据即可为图像数据。
具体地,数据传输系统从服务器中获取待传输数据,由于数据的最优传输需要通过对应的数据传输矩阵完成,因此数据传输系统根据待传输数据得到对应的数据传输矩阵。
步骤204,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
其中,数据的最优传输的经典实现包括对待传输数据的数据传输矩阵进行行重缩放和列重缩放。对矩阵进行行重缩放操作意味着将矩阵中的每个数据元素乘以相应行的行重缩放因子,对矩阵进行列重缩放操作意味着将矩阵中的每个数据元素乘以相应列的列重缩放因子。现有的数据最优传输的主要思想是在对矩阵进行行重缩放和列重缩放之间交替迭代,直到达到设定的误差限为止,可以理解的,在对矩阵进行行重缩放与列重缩放操作时,先行重缩放后列重缩放或反之先列重缩放后行重缩放,均不影响理论极限值,在实际应用中可以不做区分。
传统数据最优传输在实现数据传输矩阵的行重缩放与列重缩放时,通常使用交替迭代的方法,即对数据传输矩阵中的每一个数据元素先做一遍行重缩放,再做一遍列重缩放。以行重缩放举例,交替迭代在进行行重缩放时,需要先访问一遍矩阵中的数据元素,得到矩阵的每一行的总和,进而根据每一行的总和得到行重缩放因子,然后需要再访问一遍矩阵中的元素,根据行重缩放因子修改元素,同理,列重缩放过程也需要多次访问矩阵中的元素,因此整个交替迭代过程中需要多次访问数据存储的内存,导致访问速度降低,影响了整体数据传输的速度。
本实施例中通过深入分析数据最优传输的特点,提出了将行重缩放和列重缩放交织在一起的方法,通过减少数据矩阵从主存加载的次数,提高每次加载数据的利用率。
具体地,数据传输系统先对矩阵中的每一行的行数据元素做一遍列重缩放,再对矩阵中的每一行的行数据元素做一遍行重缩放,接着对下一行进行同样的操作,直到这个矩阵中的每一行都完成,通过对每一行的行数据元素交织执行列重缩放操作和行重缩放操作,可以使每一行数据元素在做列重缩放和行重缩放时,二者得到的更新后的数值可以相互影响,进而快速得到更新后的数据传输矩阵。将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中,可以同时累计计算矩阵的列总和,为下一次列缩放做准备,减少从内存中访问数据的次数,提高了每次加载数据的利用率。
步骤206,将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵。
其中,预设迭代阈值是用于表征数据传输矩阵是否更新完成的预设阈值参数,具体地,数据传输系统将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,得到比较结果,调用预设迭代阈值,将比较结果与预设迭代阈值进行比较,若比较结果满足预设迭代阈值,说明经过交织执行列重缩放操作和行重缩放操作,数据传输矩阵已经完成了最优传输,将更新后的数据传输矩阵确定为目标数据传输矩阵。
在其中一个实施例中,数据传输系统将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,得到比较结果,包括:分别获取更新后的数据传输矩阵中所有数据元素的和与更新前的数据传输矩阵中所有数据元素的和,计算两个和的差值,得到比较结果。
步骤208,根据目标数据传输矩阵完成数据最优传输操作。
具体地,数据传输系统根据对待传输数据的数据传输矩阵进行更新后的目标数据传输矩阵,得到最终传输完成的数据,完成数据最优传输操作。
上述数据最优传输方法中,在得到待传输数据的数据传输矩阵后,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,通过交织执行列重缩放操作和行重缩放操作,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中,预设列求和数组可以为下一次迭代进行列重缩放提供需要的列总和,减少了执行数据传输时从内存中访问数据的次数,提高数据传输时内存访问速率以及内存计算单元利用率。
对数据传输矩阵交织执行列重缩放与行重缩放操作是数据最优传输方法中的重要步骤,在一个实施例中,如图3所示,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,包括:
步骤302,获取每一行各行数据的列重缩放因子。
其中,列重缩放因子是用于对数据传输矩阵中的数据元素执行列重缩放的必要参数。
具体地,数据传输系统在对数据传输矩阵的每一行的行数据元素进行列重缩放操作前,需要获取每一行中各行数据对应的列重缩放因子。
步骤304,根据各列重缩放因子对每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据。
具体地,数据传输系统通过将每一行的行数据分别乘以该行数据对应的列重缩放因子,实现对每一行的行数据执行列重缩放操作,从而得到更新后的每一行的行数据。
步骤306,将每一行的行数据中经过列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子。
其中,预设行求和数组预先设定的用于存储经过列重缩放操作的行数据的数组。
具体地,数据传输系统在对每一行的行数据进行列重缩放操作时,每对一个数据元素执行完列重缩放操作,得到更新后的数据元素后,即将更新后的数据元素存入预先设置的预设行求和数组中,当数据传输矩阵中的各行的行数据完成列重缩放更新后,可以根据存储在预设行求和数组中的该行的更新后的数据元素计算得到对应的行重缩放因子,为下一次迭代进行行重缩放做准备。
步骤308,基于行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
具体地,数据传输系统将进行了列重缩放更新后的每一行的行数据分别乘以该行对应的行重缩放因子,实现对更新后的每一行的行数据执行列重缩放操作,从而得到执行完列重缩放和行重缩放操作后的数据传输矩阵,即更新后的数据传输矩阵。
本实施例中,在根据各列重缩放因子对数据传输矩阵中的每一行的行数据执行了列重缩放操作后,通过将更新后的每一行的行数据添加至预设行求和数组的相应位置中,可以在对各行数据进行更新的同时,得到后续进行行重缩放所需的行重缩放因子,进一步减少了从内存中访问数据的次数,提高了每次加载数据的利用率。
在实际数据传输时,对数据传输矩阵进行更新的过程往往是需要多次迭代的过程,基于此,在一个实施例中,如图4所示,数据最优传输方法还包括以下步骤:
步骤402,若比较结果不满足预设迭代阈值,则根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
具体地,数据传输系统将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果不满足预设迭代阈值,说明经过上一次交织执行列重缩放操作和行重缩放操作,数据传输矩阵并未完成最优传输,还需要再次交织执行列重缩放操作和行重缩放操作。数据传输系统获取预设列求和数组中存储的更新后的行数据,根据更新后的行数据得到更新后的数据传输矩阵中每一行的行数据对应的列重缩放因子
步骤404,将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵。
具体地,数据传输系统将更新后的数据传输矩阵重新替换为待传输数据的数据传输矩阵,以便再次交织执行列重缩放操作和行重缩放操作。
步骤406,返回执行对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至比较结果满足预设迭代阈值为止。
具体地,数据传输系统在得到继续执行列重缩放操作所需的列重缩放因子后,将更新后的数据传输矩阵重新替换为待传输数据的数据传输矩阵,根据获得的列重缩放因子返回执行对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,整个过程可以迭代多次,直至比较结果满足预设迭代阈值,即确定数据传输矩阵完成最优传输为止。
本实施例中,数据传输系统在确定更新后的数据传输矩阵与更新前的数据传输矩阵进行比较得到的比较结果不满足预设比较阈值时,根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据对应的列重缩放因子,并根据得到的列重缩放因子继续对更新后的数据传输矩阵进行迭代操作,直到得到的比较结果满足预设迭代阈值为止,通过预设列求和数组中存储的行数据快速得到每一行的行数据对应的列重缩放因子,无需再次访问每一行的行数据,减少了执行数据传输时从内存中访问数据的次数,提高数据传输时内存访问速率以及内存计算单元利用率。
执行列重缩放操作与行重缩放操作时,对应的列重缩放因子与行重缩放因子都是必不可少的计算参数。
在一个实施例中,将每一行的行数据中经过列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子,包括:
对每一行的行数据中经过列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;根据行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
具体地,在需要计算行重缩放因子时,数据传输系统先对每一行的行数据中经过列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和,然后根据行总和和每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子,为后续根据行重缩放因子对数据传输矩阵进行行重缩放操作提供了数据基础。
以数据传输矩阵为M行、N列的矩阵A=(Aij)为例进行说明,其中,相关系数fi=er/(er+ep),er和ep是与数据的不平衡最优传输应用相关的系数,行概率分布值RPD是长度为M的向量度量,是算法的约束条件。
每一行的行数据对应的行重缩放因子的计算公式如下:
其中,α为第i行的行重缩放因子。
进一步的,在一个实施例中,根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子,包括:
根据预设列求和数组中存储的行数据得到更新后的每一行的行数据对应的列总和;根据列总和与每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
具体地,在需要计算列重缩放因子时,数据传输系统先根据预设列求和数组中存储的行数据进行求和处理,得到更新后的每一行的行数据对应的列总和,然后根据列总和与每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据对应的列重缩放因子,为后续根据列重缩放因子对更新后的数据传输矩阵进行列重缩放操作提供了数据基础。
以数据传输矩阵为M行、N列的矩阵A=(Aij)为例进行说明,其中,相关系数fi=er/(er+ep),er和ep是与数据的不平衡最优传输应用相关的系数,行概率分布值CPD是长度为N的向量度量,是算法的约束条件。
每一行的行数据对应的行重缩放因子的计算公式如下:
其中,β为第i行的列重缩放因子。
实际执行数据传输时,需要访问的内存类型并不只有一种,不同的内存类型对应的数据传输过程也存在一定的区别。
在一个实施例中,当数据传输时访问的内存类型为中央处理器内存时,待传输数据的数据传输矩阵由多个数据构成。
其中,中央处理器(Central processing unit,CPU)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。当数据传输时数据处理系统访问的内存类型为中央处理器内存时,数据传输系统获取的待传输数据的数据传输矩阵直接由多个数据构成。
为了便于理解,如图5所示,以数据传输系统获取的待传输数据的数据传输矩阵为M行和N列的矩阵A=(Aij)为例进行说明,数据传输系统预先设置有长度为N的数组Factorcol(列重缩放因子存储数组),对数组Factorcol进行预处理以存储列重缩放因子,数组Factorcol具体可以表示为:
数据传输系统同时设置一个长度为N的数组NextSumcol(列求和数组)来存储列的总和以用于下一次迭代的列重缩放,以及一个行变量Sumrow用于当前的行重缩放。
为了实现更高效的内存访问,减少矩阵从主存加载的次数,即提高每次加载数据的利用率,对数据传输矩阵交织执行列重缩放操作和行重缩放操作的具体实现分为以下四个部分:第一部分,根据数据传输矩阵的行总和计算行重缩放因子。第二部分,根据行重缩放因子修改矩阵,同时计算矩阵的列总和。第三部分,根据矩阵的列总和计算列重缩放因子。第四部分,根据列重缩放因子修改矩阵并同时得到矩阵的行总和。
设计人员发现,第二部分和第四部分的计算复杂度在整个流程的运行时间中占据绝对比例,因此对第二部分与第四部分进行关键优化可以有效提高每次加载数据的利用率。
设计人员在数据传输系统中设计了主二重循环,数据传输时所有的计算任务都在这个主二重循环中完成。主二重循环按行的顺序执行上述四个步骤,将内循环中一行的遍历分为图5中的两个步骤,对于其中的第四部分和第二部分,在第四部分中,数据传输系统依次访问一行中的每个数据,并用于实现两类计算:I和II。计算I:将每个数据乘以Factorcol数组对应位置的列重缩放因子,这就完成了当前行的列重缩放,所以对于这一行,接下来需要做的是行重缩放。计算II:将每一个经过列重缩放的数据添加到Sumrow,完成此操作后,该行的总和在Sumrow中累加。在第四部分结束之后,使用相应的RPD和fi与Sumrow进行计算以获得用于该行的行重缩放因子Factorrow。在第二部分中,我们需要接着访问该行的每个数据并执行两类计算,类似于第四部分。计算III:将每个数据乘以上一步得到的Factorrow,这就完成了该行的行重缩放。计算IV:将每个经过行重缩放的数据加到NextSumcol数组中的对应位置。至此该行的所有操作都已完成。对于下一行,只需重复上述过程。完成这个主二重循环后,整个矩阵就完成了一次列重缩放和一次行重缩放。最后,NextSumcol数组将矩阵的列总和进行累加,可以与CPD和fi计算得到下一次迭代需要使用的列重缩放因子。
进一步的,在一个实施例中,当数据传输时访问的内存类型为图形处理器内存时,待传输数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成。
其中,图形处理器(Graphics processing unit,GPU)又称显示核心、视觉处理器、显示芯片等,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作。当数据传输时访问的内存类型为图形处理器内存时,待传数数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成,且各个数据传输子矩阵由于所处维度不同,可以存在包含关系,即高维度的数据传输子矩阵由多个低纬度的数据传输子矩阵构成,而待传输数据的数据传输矩阵又由多个高纬度的数据传输子矩阵构成。
当数据传输时访问的内存类型为图像处理器内存时,如图6所示,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中,包括:
步骤602,确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵。
具体地,数据传输平台首先确定各数据传输子矩阵的维度,根据各数据传输子矩阵的维度确定数据传输矩阵中各子矩阵之间的包含关系。然后按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵。可以理解的,对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作的具体实施步骤与上述实施例中数据传输系统对数据传输矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作具体实施步骤大致相同,在此不再赘述。
步骤604,根据更新后的数据传输子矩阵得到数据传输矩阵的每一行的行数据。
具体地,数据传输系统根据各数据传输子矩阵之间的包含关系,按照维度由低到高的确定数据传输矩阵中的每一行的行数据。
例如若数据传输矩阵中包含了两个维度的数据传输子矩阵,其中第一维度低于第二维度,则数据传输系统首先对第一维度的数据传输子矩阵执行一次交织迭代缩放操作,得到更新后的第一维度的数据传输子矩阵,随后根据更新后的第一维度的数据传输子矩阵确定第二维度的数据传输子矩阵中每一行的行数据,再对第二维度的数据传输子矩阵进行交织迭代缩放,得到更新后的第二维度的数据传输子矩阵,根据更新后的第二维度的数据传输子矩阵得到数据传输矩阵的每一行的行数据。
步骤606,对数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
具体地,数据传输系统根据更新后的数据传输子矩阵得到数据传输矩阵的每一行的行数据后,即可如上述实施例中记载的交织迭代缩放方式一样,对数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
为了更好的理解在GPU上进行的设计与传输优化,如图7所示,图7的上半部分显示了专门针对第二部分的GPU优化设计,首先为GPU的内核根据预设分块策略分为一个二维网格和二维块为例进行说明,其中,网格由By×Bx个块组成,每个块由Ty×Tx个线程组成。
然后介绍上述交织迭代的四个部分中第二部分的计算过程和内存安排。具体地,每个块会加载一个(Ty×Ny)×Tx的子矩阵,每个块需要先用行重缩放因子修改子矩阵,然后计算子矩阵的列总和,并将其添加到Sumcol列求和数组中。使用共享内存来提高这个过程的性能是很有必要的。使用SmemFactorrow来加载这个块需要的Factorrow数组,因为Factorrow数组需要被多次访问。然后使用Ty×Tx的SmemSumcol得到子矩阵的列总和。更具体地说,对于一个线程,让它负责处理子矩阵中的Ny个数据。每个线程都会先将一行中要处理的数据乘以SmemFactorrow中对应的数据。然后它将数据添加到SmemSumcol的对应位置,例如将线程(i,j)处理的数据添加到SmemSumcol[i][j]。每个线程都会重复这个过程Ny次。值得注意的是,让一个线程处理Ny个数据而不是1个数据的原因是为了帮助隐藏内存访问延迟。
接下来,数据传输系统需要对SmemSumcol中得到的数据进行进一步处理,即对其进行归约操作,计算出Ty行数据列的总和,并存入第一行。
最后,数据传输系统需要将子矩阵的列总和的结果添加到Sumcol数组中。这时候很多块会同时访问一个地址,导致结果错误。因此此处使用原子操作指令来保证访问安全并得到正确的结果。
在GPU中,第四部分和第二部分的设计有相似之处,此处将重点介绍不同之处。在分块策略方面,数据传输系统安排了一维块,每个块由Tx个线程组成。然后对于每一个块,数据传输系统使用SmemFactorcol加载Factorcol数组的对应位置,并使用SmemSumrow数组存储来自子矩阵的当前处理行的总和。每个线程会先将一行的数据与SmemFactorcol的对应数据相乘,然后与其他线程协作得到子矩阵当前处理的行的总和,最后加到Sumrow数组的对应位置。每个线程将重复此过程Ny次以完成此部分。
在获取子矩阵当前处理的行和的过程中,需要进行归约操作,而不是直接将其添加到SmemSumrow数组中。数据传输系统使用shuffle指令来实现这一点。shuffle指令可以使线程束中的线程直接交换数据而不使用共享内存,并且比共享内存具有更低的延迟。归约操作分为两个步骤,首先,数据传输系统使用shuffle指令得到一个线程束的结果并存储在SmemSumrow中,然后再次进行归约操作,得到SmemSumrow的归约结果。最后,数据传输系统使用原子指令将归约结果存储在全局内存的Sumrow数组中。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据最优传输方法的数据最优传输装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据最优传输装置实施例中的具体限定可以参见上文中对于数据最优传输方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种数据最优传输装置800,包括:矩阵获取模块801、交织缩放模块802、比较模块803和数据传输模块804,其中:
矩阵获取模块801,用于获取待传输数据的数据传输矩阵。
交织缩放模块802,用于对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
比较模块803,用于将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵。
数据传输模块804,用于根据目标数据传输矩阵完成数据最优传输操作。
上述数据最优传输装置,在得到待传输数据的数据传输矩阵后,对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,通过交织执行列重缩放操作和行重缩放操作,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中,预设列求和数组可以为下一次迭代进行列重缩放提供需要的列总和,减少了执行数据传输时从内存中访问数据的次数,提高数据传输时内存访问速率以及内存计算单元利用率。
在一个实施例中,交织缩放模块还用于:获取每一行各行数据的列重缩放因子;根据各列重缩放因子对每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据;将每一行的行数据中经过列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子;基于行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
在一个实施例中,数据最优传输装置还包括:迭代模块,用于若比较结果不满足预设迭代阈值,则根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子;将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵,返回执行对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至比较结果满足预设迭代阈值为止。
在一个实施例中,交织缩放模块还用于:确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵;根据更新后的数据传输子矩阵得到数据传输矩阵的每一行的行数据;对数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
在一个实施例中,交织缩放模块还用于:对每一行的行数据中经过列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;根据行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
在一个实施例中,交织缩放模块还用于:根据预设列求和数组中存储的行数据得到更新后的每一行的行数据对应的列总和;根据列总和与每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
上述数据最优传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是集成了数据传输系统的终端或服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据传输矩阵、预设列求和数组、预设迭代阈值等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据最优传输方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待传输数据的数据传输矩阵;
对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中;
将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
根据目标数据传输矩阵完成数据最优传输操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取每一行各行数据的列重缩放因子;
根据各列重缩放因子对每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据;
将每一行的行数据中经过列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子;
基于行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若比较结果不满足预设迭代阈值,则根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子;
将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵,返回执行对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至比较结果满足预设迭代阈值为止。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据传输时访问的内存类型为中央处理器内存时,待传输数据的数据传输矩阵由多个数据构成。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当数据传输时访问的内存类型为图形处理器内存时,待传输数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成;
确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵;
根据更新后的数据传输子矩阵得到数据传输矩阵的每一行的行数据;
对数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对每一行的行数据中经过列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;
根据行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据预设列求和数组中存储的行数据得到更新后的每一行的行数据对应的列总和;
根据列总和与每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待传输数据的数据传输矩阵;
对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中;
将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
根据目标数据传输矩阵完成数据最优传输操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取每一行各行数据的列重缩放因子;
根据各列重缩放因子对每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据;
将每一行的行数据中经过列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子;
基于行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若比较结果不满足预设迭代阈值,则根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子;
将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵,返回执行对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至比较结果满足预设迭代阈值为止。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据传输时访问的内存类型为中央处理器内存时,待传输数据的数据传输矩阵由多个数据构成。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当数据传输时访问的内存类型为图形处理器内存时,待传输数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成;
确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵;
根据更新后的数据传输子矩阵得到数据传输矩阵的每一行的行数据;
对数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对每一行的行数据中经过列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;
根据行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据预设列求和数组中存储的行数据得到更新后的每一行的行数据对应的列总和;
根据列总和与每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取待传输数据的数据传输矩阵;
对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中;
将更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
根据目标数据传输矩阵完成数据最优传输操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取每一行各行数据的列重缩放因子;
根据各列重缩放因子对每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据;
将每一行的行数据中经过列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子;
基于行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若比较结果不满足预设迭代阈值,则根据预设列求和数组中存储的行数据得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子;
将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵,返回执行对数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至比较结果满足预设迭代阈值为止。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据传输时访问的内存类型为中央处理器内存时,待传输数据的数据传输矩阵由多个数据构成。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当数据传输时访问的内存类型为图形处理器内存时,待传输数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成;
确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵;
根据更新后的数据传输子矩阵得到数据传输矩阵的每一行的行数据;
对数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将每一行的行数据中经过行重缩放操作的行数据添加至预设列求和数组的相应位置中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对每一行的行数据中经过列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;
根据行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据预设列求和数组中存储的行数据得到更新后的每一行的行数据对应的列总和;
根据列总和与每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据最优传输方法,其特征在于,所述方法包括:
获取待传输数据的数据传输矩阵;
对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中;
将所述更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
根据目标数据传输矩阵完成数据最优传输操作。
2.根据权利要求1所述的方法,其特征在于,所述对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,包括:
获取所述每一行各行数据的列重缩放因子;
根据各所述列重缩放因子对所述每一行的行数据执行列重缩放操作,得到更新后的每一行的行数据;
将所述每一行的行数据中经过所述列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子;
基于所述行重缩放因子对更新后的每一行的行数据执行行重缩放操作,得到更新后的数据传输矩阵。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述比较结果不满足所述预设迭代阈值,则根据预设列求和数组中存储的行数据得到所述更新后的数据传输矩阵中每一行的行数据的列重缩放因子;
将更新后的数据传输矩阵确定为待传输数据的数据传输矩阵,返回执行对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵的步骤,直至所述比较结果满足所述预设迭代阈值为止。
4.根据权利要求1所述的方法,其特征在于,当数据传输时访问的内存类型为中央处理器内存时,所述待传输数据的数据传输矩阵由多个数据构成。
5.根据权利要求1所述的方法,其特征在于,当数据传输时访问的内存类型为图形处理器内存时,所述待传输数据的数据传输矩阵由不同维度的多个数据传输子矩阵构成;
所述对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中,包括:
确定各数据传输子矩阵的维度,按照维度由低到高的顺序,依次对各数据传输子矩阵中每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输子矩阵;
根据更新后的数据传输子矩阵得到所述数据传输矩阵的每一行的行数据;
对所述数据传输矩阵中的中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中。
6.根据权利要求2所述的方法,其特征在于,所述将所述每一行的行数据中经过所述列重缩放操作的行数据添加至预设行求和数组的相应位置中,计算得到更新后的每一行的行数据对应的行重缩放因子,包括:
对所述每一行的行数据中经过所述列重缩放操作的行数据进行求和处理,得到更新后的每一行的行数据对应的行总和;
根据所述行总和与每一行数据的行概率分布值、相关系数计算得到更新后的每一行的行数据对应的行重缩放因子。
7.根据权利要求3所述的方法,其特征在于,所述根据预设列求和数组中存储的行数据得到所述更新后的数据传输矩阵中每一行的行数据的列重缩放因子,包括:
根据预设列求和数组中存储的行数据得到所述更新后的每一行的行数据对应的列总和;
根据所述列总和与所述每一行的行数据的列概率分布值、相关系数计算得到更新后的数据传输矩阵中每一行的行数据的列重缩放因子。
8.一种数据最优传输装置,其特征在于,所述装置包括:
矩阵获取模块,用于获取待传输数据的数据传输矩阵;
交织缩放模块,用于对所述数据传输矩阵中的每一行的行数据依次交织执行列重缩放操作与行重缩放操作,得到更新后的数据传输矩阵,并将所述每一行的行数据中经过所述行重缩放操作的行数据添加至预设列求和数组的相应位置中;
比较模块,用于将所述更新后的数据传输矩阵与更新前的数据传输矩阵进行比较,若比较结果满足预设迭代阈值,则将更新后的数据传输矩阵确定为目标数据传输矩阵;
数据传输模块,用于根据目标数据传输矩阵完成数据最优传输操作。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310012870.XA CN116055003B (zh) | 2023-01-05 | 2023-01-05 | 数据最优传输方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310012870.XA CN116055003B (zh) | 2023-01-05 | 2023-01-05 | 数据最优传输方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055003A true CN116055003A (zh) | 2023-05-02 |
CN116055003B CN116055003B (zh) | 2024-07-12 |
Family
ID=86117960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310012870.XA Active CN116055003B (zh) | 2023-01-05 | 2023-01-05 | 数据最优传输方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055003B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040076124A1 (en) * | 2002-10-16 | 2004-04-22 | Avneesh Agrawal | Rate adaptive transmission scheme for MIMO systems |
JP2007110265A (ja) * | 2005-10-11 | 2007-04-26 | Samsung Electronics Co Ltd | 復号装置および復号方法 |
WO2018153178A1 (zh) * | 2017-02-23 | 2018-08-30 | 深圳市中兴微电子技术有限公司 | 一种基于mimo系统的信号检测方法及装置、存储介质 |
CN114328360A (zh) * | 2021-11-30 | 2022-04-12 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备和介质 |
CN114996651A (zh) * | 2022-06-02 | 2022-09-02 | 湖南大学 | 计算机中任务数据处理方法、装置、计算机设备和介质 |
-
2023
- 2023-01-05 CN CN202310012870.XA patent/CN116055003B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040076124A1 (en) * | 2002-10-16 | 2004-04-22 | Avneesh Agrawal | Rate adaptive transmission scheme for MIMO systems |
JP2007110265A (ja) * | 2005-10-11 | 2007-04-26 | Samsung Electronics Co Ltd | 復号装置および復号方法 |
WO2018153178A1 (zh) * | 2017-02-23 | 2018-08-30 | 深圳市中兴微电子技术有限公司 | 一种基于mimo系统的信号检测方法及装置、存储介质 |
CN114328360A (zh) * | 2021-11-30 | 2022-04-12 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备和介质 |
CN114996651A (zh) * | 2022-06-02 | 2022-09-02 | 湖南大学 | 计算机中任务数据处理方法、装置、计算机设备和介质 |
Non-Patent Citations (3)
Title |
---|
YANG, WD: "A pipeline computing method of SpTV for three-order tensors on CPU and GPU(Article)", 《ACM TRANSACTIONS ON KNOWLEDGE DISCOVERY FROM DATA》, vol. 13, no. 6, 31 December 2019 (2019-12-31) * |
刘宴华;雷菁;文磊;: "CMMB标准中LDPC码编码方法研究", 通信技术, no. 10, 10 October 2010 (2010-10-10) * |
徐成等: "免缩放因子双步旋转CORDIC算法", 《电子学报》, vol. 42, no. 07, 31 December 2014 (2014-12-31) * |
Also Published As
Publication number | Publication date |
---|---|
CN116055003B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534607B2 (en) | Accessing data in multi-dimensional tensors using adders | |
US10802956B2 (en) | Accessing prologue and epilogue data | |
CN112214726B (zh) | 运算加速器 | |
US9946539B1 (en) | Accessing data in multi-dimensional tensors using adders | |
US11630997B2 (en) | Method and apparatus with bit-serial data processing of a neural network | |
US20120221788A1 (en) | Multi-dimensional array manipulation | |
US8433883B2 (en) | Inclusive “OR” bit matrix compare resolution of vector update conflict masks | |
CN110516316B (zh) | 一种间断伽辽金法求解欧拉方程的gpu加速方法 | |
CN106846235A (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
CA2929403C (en) | Multi-dimensional sliding window operation for a vector processor | |
JP7387017B2 (ja) | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム | |
US20190311266A1 (en) | Device and method for artificial neural network operation | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN116055003B (zh) | 数据最优传输方法、装置、计算机设备和存储介质 | |
CN114996651A (zh) | 计算机中任务数据处理方法、装置、计算机设备和介质 | |
CN116304677A (zh) | 模型的通道剪枝方法、装置、计算机设备和存储介质 | |
CN115424038A (zh) | 多尺度图像处理方法、系统、装置和计算机设备 | |
CN111931937B (zh) | 图像处理模型的梯度更新方法、装置及系统 | |
GB2567038B (en) | Accessing prologue and epilogue data | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN113642722A (zh) | 用于卷积计算的芯片及其控制方法、电子装置 | |
CN117851080A (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN117971472A (zh) | 基于ARM处理器的SpMV并行加速处理方法与系统 | |
CN118332235A (zh) | 可敏捷部署在边端的大规模线性方程组的数据处理方法 | |
CN118013176A (zh) | Gpu系统的fft计算方法、装置、电子设备 |
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 |