CN118093231A - 一种面向异构计算的数据传输方法、装置、系统和产品 - Google Patents
一种面向异构计算的数据传输方法、装置、系统和产品 Download PDFInfo
- Publication number
- CN118093231A CN118093231A CN202410491042.3A CN202410491042A CN118093231A CN 118093231 A CN118093231 A CN 118093231A CN 202410491042 A CN202410491042 A CN 202410491042A CN 118093231 A CN118093231 A CN 118093231A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- transmission
- memory
- strategy
- 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 482
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000001133 acceleration Effects 0.000 claims abstract description 146
- 238000012546 transfer Methods 0.000 claims abstract description 117
- 238000012545 processing Methods 0.000 claims abstract description 59
- 239000007787 solid Substances 0.000 claims description 90
- 230000006870 function Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 23
- 230000008901 benefit Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种面向异构计算的数据传输方法、装置、系统和产品,属于数据处理的技术领域,所述方法包括获取目标数据的数据大小、目标数据在系统的内存中的缓存情况以及目标异构加速设备;根据目标数据的数据大小和目标数据在系统的内存中的缓存情况,确定目标数据的目标传输策略;根据目标传输策略将目标数据传输到目标异构加速设备的内存中;当目标数据的数据大小大于预设的数据阈值,且目标数据在系统的内存中部分缓存时,根据代价模型确定目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略作为目标传输策略。本申请实施例旨在提高数据传输效率。
Description
技术领域
本申请实施例涉及数据处理的技术领域,具体而言,涉及一种面向异构计算的数据传输方法、装置、系统和产品。
背景技术
随着数据处理技术与需求的不断增长,如何提高数据处理或任务处理的效率是一直备受关注的问题,而异构计算的应用提高计算效率,异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,异构计算加速可以充分利用不同类型处理器的优势,通过将任务分配给不同的处理器并行执行可以提高计算效率。
但是随着数据集规模不断增加,载入数据花费的时间越来越长,进而导致数据从固态硬盘传输到异构加速设备的数据传输已经成为异构加速性能的瓶颈。
发明内容
本申请实施例提供一种面向异构计算的数据传输方法、装置、系统和产品,旨在提高数据传输效率。
第一方面本申请实施例提供一种面向异构计算的数据传输方法,应用于包括异构加速设备和固态硬盘的异构加速系统,所述方法包括:
获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备;
根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合;
根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中;
其中,当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
可选地,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小小于等于所述数据阈值时,所述目标数据对应的目标传输策略为内存中转策略。
可选地,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中未缓存时,所述目标数据对应的目标传输策略为点对点传输策略。
可选地,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中全部缓存时,所述目标数据对应的目标传输策略为内存中转策略。
可选地,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中部分缓存时,枚举所述目标数据中多个数据块各自对应的候选传输策略组成的所有传输策略组合,所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的;
通过代价模型分别计算任一传输策略组合的传输代价;
将所述传输代价最小的传输策略组合作为所述目标数据的目标传输策略,所述目标传输策略中多个数据块各自对应的候选传输策略为多个数据块各自对应的传输策略。
可选地,所述代价模型包括内存中转策略对应的代价子模型和点对点传输策略对应的代价子模型,通过代价模型分别计算任一传输策略组合的传输代价,包括:
通过所述内存中转策略对应的代价子模型,计算该传输策略组合中候选传输策略为内存中转策略的每个数据块对应的传输代价;
通过所述点对点传输策略对应的代价子模型,计算该传输策略组合中候选传输策略为点对点传输策略的每个数据块对应的传输代价;
将该传输策略组合中所有数据块各自对应的传输代价的总和,作为该传输策略组合对应的传输代价。
可选地,通过代价模型分别计算任一传输策略组合的传输代价的过程中,所述方法还包括:
将任一传输策略组合中相邻且候选传输策略相同的数据块进行合并。
可选地,通过所述内存中转策略对应的代价子模型,计算该传输策略组合中候选传输策略为内存中转策略的每个数据块对应的传输代价,包括:
对于任一所述候选传输策略为内存中转策略的数据块,所述内存中转策略对应的代价子模型根据该数据块的数据大小,计算每个数据块各自对应的传输代价;
其中,所述内存中转策略对应的代价子模型为:
其中,为任一数据块的数据大小,/>为内存中转策略中读取/>大小的数据块时的花费时间,/>均为常量,N为服务器的中央处理器的核数。
可选地,通过所述点对点传输策略对应的代价子模型,计算该传输策略组合中候选传输策略为点对点传输策略的每个数据块对应的传输代价,包括:
对于任一所述候选传输策略为点对点传输策略的数据块,所述点对点传输策略对应的代价子模型根据该数据块的数据大小以及点对点传输过程的带宽,计算每个数据块各自对应的传输代价;
所述点对点传输策略对应的代价子模型为:
其中:为任一数据块的数据大小,/>为点对点传输策略中读取/>大小的数据块时的花费时间,/>是一个常数,/>为常数,/>为代表点对点传输策略的带宽的常数,/>为一个常数。
可选地,获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备,包括:
响应于请求操作,确定所述目标异构加速设备和所述目标数据;
调用mmap函数,将所述目标异构加速设备的内存映射到进程的地址空间;
调用自定义读函数,获取所述目标数据在所述固态硬盘中的起始位置和数据大小,获取所述目标异构加速设备的内存偏移位置。
可选地,获取所述目标数据在所述固态硬盘中的起始位置和数据大小之后,所述方法还包括:
根据所述目标数据在所述系统的内存中的缓存情况、所述目标数据在所述固态硬盘中的起始位置和数据大小,构建文件缓存信息表;
所述文件缓存信息表为包括所述目标数据的一个或多个数据块各自对应的信息块组成的链表,任一数据块对应的信息块中包括该数据块在所述固态硬盘中的偏移地址、数据块大小、缓存所在地址以及第一指针,所述第一指针用于指向另一个数据块在所述固态硬盘中的偏移地址,所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的。
可选地,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略之后,所述方法还包括:
根据所述目标数据对应的目标传输策略和所述目标异构加速设备的内存偏移位置,确定所述目标数据传输至所述目标异构加速设备的内存时的目标地址;
其中,当所述目标数据包括多个数据块时,分别确定所述多个数据块各自传输至所述目标异构加速设备的内存时的目标地址;所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的。
可选地,确定所述目标数据传输至所述目标异构加速设备的内存时的目标地址之后,所述方法还包括:
根据所述目标数据在所述固态硬盘中的起始位置、数据大小以及对应的目标地址,构建传输组合表;
所述传输组合表为包括所述目标数据的一个或多个数据块各自对应的传输信息块组成的链表,任一数据块对应的传输信息块包括该数据块在所述固态硬盘中的偏移地址、数据块大小、目标地址、传输策略以及第二指针,所述第二指针用于指向另一个数据块在所述固态硬盘中的偏移地址。
可选地,根据所述目标数据在所述固态硬盘中的起始位置、数据大小以及对应的目标地址,构建传输组合表,包括:
在所述传输组合表的任一数据块对应的传输信息块中,添加一个或多个中断位置;
其中,所述中断位置用于标记所述数据块的中断偏移地址,当所述数据块传输至所述中断偏移地址时,触发数据处理中断以使所述目标异构加速设备进行数据处理。
可选地,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中,包括:
根据所述传输组合表中任一数据块在所述固态硬盘中的偏移地址、目标地址以及传输策略,将该数据块传输至所述目标异构加速设备的内存中。
可选地,根据所述传输组合表中任一数据块在所述固态硬盘中的偏移地址、目标地址以及传输策略,将该数据块传输至所述目标异构加速设备的内存的过程中,所述方法还包括:
当任一数据块在传输至中断位置时,向中央处理器发送数据处理中断;
所述中央处理器响应所述数据处理中断后,在所述目标异构加速设备的门铃中断状态寄存器中写入目标值;
所述目标异构加速设备根据所述门铃中断状态寄存器中的目标值,进行数据处理;
其中,当所述目标异构加速设备的门铃中断状态寄存器中写入表征数据传输完毕的目标值时,所述门铃中断状态寄存器中包括该数据块在所述目标异构加速设备的内存中的起始位置以及数据块大小。
可选地,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中,包括:
当所述目标数据中任一数据块的传输策略为内存中转策略时,若该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块传输至该数据块在所述目标异构加速设备的内存中对应的地址;
当所述目标数据中任一数据块的传输策略为内存中转策略时,若该数据块未存储在所述系统的内存中,所述固态硬盘的第一内存访问控制器将该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块传输至该数据块在所述目标异构加速设备的内存中对应的地址。
可选地,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中,包括:
当所述目标数据中任一数据块的传输策略为点对点传输策略时,所述固态硬盘的第一内存访问控制器将该数据块传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
第二方面,本申请实施例提供一种面向异构计算的数据传输装置,应用于包括异构加速设备和固态硬盘的异构加速系统,所述装置包括:
获取模块,用于获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备;
目标传输策略确定模块,用于根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合;
传输模块,用于根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中;
其中,当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
第三方面,本申请实施例提供一种异构加速系统,所述系统用于执行实施例第一方面所述的面向异构计算的数据传输方法,所述系统包括异构加速设备和固态硬盘;
所述异构加速设备和所述固态硬盘连接同一高速串行计算机扩展总线转换器;
所述固态硬盘配置有第一内存访问控制器,所述异构加速设备配置有第二内存访问控制器。
第四方面,本申请实施例提供一种计算处理设备,包括:
存储器,其中存储有计算机可读代码;一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行实施例第一方面所述的面向异构计算的数据传输方法。
第五方面,本申请实施例提供一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时执行实施例第一方面所述的面向异构计算的数据传输方法。
有益效果:
本方法中,在异构计算的数据传输过程中,获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备;然后根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中。
本方法可以动态地根据目标数据的数据大小以及目标数据在系统的内存中的缓存情况,选择适合目标数据的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合;并且在当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略,进而可以提高数据传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1示出了本申请实施例提供的异构加速系统的结构示意图;
图2示出了本申请实施例提供的面向异构计算的数据传输方法的步骤流程图;
图3示出了本申请实施例提供的文件缓存信息表的示意图;
图4示出了本申请实施例提供的确定目标传输策略的流程图;
图5示出了本申请实施例提供的传输组合表的示意图;
图6示出了本申请实施例提供的数据传输过程的执行图;
图7示出了本申请实施例提供的数据传输过程的执行图;
图8示出了本申请实施例提供的面向异构计算的数据传输装置的功能模块图;
图9示出了本申请实施例提供的计算处理设备的示意图;
图10示出了本申请实施例提供的非易失性可读存储介质的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
PCIe:Peripheral Component Interconnect Express,高速串行计算机扩展总线标准;
NVMe:Non Volatile Memory Host Controller Interface Specification,非易失性内存主机控制器接口规范;
DMA:Direct Memory Access,直接存储器访问;
SSD:Solid State Disk或Solid State Driv,固态硬盘;
CPU:Central Processing Unit,中央处理器;
GPU:graphics processing unit,图形处理器;
FPGA:Field Programmable Gate Array,现场可编程门阵列。
异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,异构计算加速可以充分利用不同类型处理器的优势,通过将任务分配给不同的处理器并行执行可以提高计算效率,但是从固态硬盘传输到异构加速设备的数据传输效率不足已经成为异构加速性能的瓶颈。
在传统方式中,将系统的内存作为中转,即先把数据从固态硬盘中拷贝到系统的内存中,然后再从系统的内存拷贝到异构加速设备的内存中,虽然基于系统的内存预取和缓存功能可以提高数据传输效率,但是这种方法只有在数据量较少的数据传输中具有优势,并且当数据没有缓存在系统的内存中的时候,由于需要使用系统的内存进行中转,进而导致数据需要拷贝两遍,这个过程不仅传输时间长,而且还占用系统的CPU(CentralProcessing Unit,中央处理器)和内存资源。
虽然目前在固态硬盘到异构加速设备的传输过程中应用点对点的传输方式,可以提高数据量大的传输过程的数据传输性能,但是由于存在预取固态硬盘到系统的内存中的设计,对于已经预取在系统的内存中的数据,从系统的内存传输至异构加速设备的传输速率明显更快;而且在传输小数据量时,点对点的传输方式的传输性能也比不上利用系统的内存中转的传输方式。
而面对不同的数据,如何提高数据传输的效率是一个亟待解决的问题,因此为了提高数据传输效率,本申请实施例提供一种面向异构计算的数据传输方法和应用所述方法的异构加速系统。
参照图1,示出了本申请实施例提供的异构加速系统的结构示意图,所述系统包括异构加速设备、固态硬盘、中央处理器、内存以及高速串行计算机扩展总线转换器。
中央处理器连接系统的内存,为了提高对磁盘的读速,系统的内存具有预取缓存的功能,即可以预先将部分数据读取缓存在系统的内存中。
本实施例中,固态硬盘和异构加速设备连接同一高速串行计算机扩展总线转换器,即PCIe Switch,在其他实施例中,固态硬盘和异构加速设备可以不连接至同一个PCIeSwitch,只要在同一个域即可。
固态硬盘采用PCIe总线接口协议且配置有第一内存访问控制器,即第一DMA控制器,第一DMA控制器在收到数据请求等相关命令后负责数据的高速传输,其接口协议可以是NVMe协议但不限于NVMe协议。
示例地,固态硬盘以NAND闪存(NAND flash)为存储介质的NVMe SSD,NAND flash具有传输速率高、可靠性高、体积小以及功耗低等特点;基于PCIe协议的NVMe SSD充分利用了PCIe的高带宽和扩展性,NVMe协议规定了命令传输使用队列机制,每一个命令队列包含一个发送队列和一个完成队列,多个发送队列可共用一个完成队列,最大支持65535个命令队列,单个队列最大支持64K条指令,释放SSD的全部潜能,极大地提升了数据传输带宽和指令并行处理能力。
异构加速设备采用PCIe总线接口协议且配置有第二内存访问控制器,即第二DMA控制器,第二DMA控制器负责发起数据的高速传输,异构加速设备可以包括图形处理器(GPU)、现场可编程逻辑门阵列(FPGA)以及各种领域专用架构设备。
当异构加速设备需要获得固态硬盘中指定文件的数据时,异构加速设备和固态硬盘之间存在两条数据传输的传输策略,分别为:
如图1中的路线1,内存中转策略是数据先从固态硬盘先读至系统的内存中,然后再由系统的内存读至异构加速设备的内存中。
如图1中的路线2,基于PCIe的点对点传输策略是将数据直接从固态硬盘读至异构加速设备。
参照图2,示出了本申请实施例提供的面向异构计算的数据传输方法的步骤流程图,所述方法应用于包括异构加速设备和固态硬盘的异构加速系统,所述方法可以包括以下步骤:
S101:获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备。
在一种可行的实施方式中,获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备时,响应于用户的请求操作,异构加速系统中的CPU可以确定所述目标异构加速设备和所述目标数据;然后调用mmap函数,将所述目标异构加速设备的内存映射到进程的地址空间;接着,调用自定义读函数,自定义读函数的参数包括:目标数据在固态硬盘中的起始位置、数据大小、目标异构加速设备的内存偏移位置,因此通过自定义读函数可以获取所述目标数据在所述固态硬盘中的起始位置和数据大小,获取所述目标异构加速设备的内存偏移位置。
在一种可行的实施方式中,为了便于管理目标数据的起始位置、数据大小以及缓存情况,还可以根据所述目标数据在所述系统的内存中的缓存情况、所述目标数据在所述固态硬盘中的起始位置和数据大小,构建文件缓存信息表。
所述文件缓存信息表为包括目标数据的一个或多个数据块各自对应的信息块组成的链表,任一数据块对应的信息块中包括该数据块在所述固态硬盘中的偏移地址、数据块大小、缓存所在地址以及第一指针,所述第一指针用于指向另一个数据块在所述固态硬盘中的偏移地址。
所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的,示例地,对于一个目标数据A,若是目标数据A全部缓存在系统的内存中,则可以将目标数据A作为一个数据块,则其文件缓存信息表的链表中只有一个数据块;对于一个目标数据B,若是目标数据B的部分数据缓存在系统的内存中,则可以根据在系统的内存中的缓存情况,将目标数据B划分为多个数据块,如将目标数据B划分为3个数据块,其中数据块b1为在系统的内存中的缓存的数据块,数据块b2为未在系统的内存中的缓存的数据块,数据块b3为在系统的内存中的缓存的数据块。
在实际实施的过程中,在根据在系统的内存中的缓存情况划分数据块后,还可以根据数据在固态硬盘中的物理地址的不同划分数据块,或者根据数据块的大小划分为多个数据块。
示例地,目标数据B根据在系统的内存中的缓存情况划分为数据块b1-b3后,数据块b2的数据块大小超过划分阈值时,将数据块b2进一步划分为数据块b21和数据块b22。
或者数据块b2中数据在固态硬盘中的逻辑地址不连续,示例地,数据块b2的部分数据在固态硬盘中的起始地址为100M,数据大小为50,另一部分数据在固态硬盘中的起始地址为200M,数据大小为50,则也可以将数据块b2进一步划分为数据块b21和数据块b22,其中,数据块b21为在固态硬盘中的起始地址为100M,数据大小为50的数据,数据块b22为在固态硬盘中的起始地址为200M,数据大小为50的数据。
在实际实施的过程中,根据在系统的内存中的缓存情况划分数据块、根据数据在固态硬盘中的物理地址的不同划分数据块以及根据数据块的大小划分为多个数据块的划分标准可以结合应用,本实施例不做限制。
参照图3,示出了本申请实施例提供的文件缓存信息表的示意图,目标数据划分为3个数据块:数据块1-数据块3,因此文件缓存信息表中包括3个信息块,按照数据块在所述固态硬盘中的偏移地址的先后顺序排序,其中,数据块1和数据块3在系统的内存中已经缓存,因此信息块1和信息块3的缓存所在地址中保存对应的数据块在系统的内存中缓存的地址,而数据块2未在系统的内存中缓存,则数据块2对应的信息块2的缓存所在地址为NULL;数据块1对应的信息块1中的第一指针指向数据块2对应的信息块2中的偏移地址,数据块2对应的信息块2中的第一指针指向数据块3对应的信息块3中的偏移地址。
S102:根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合。
CPU通过判断目标数据的数据大小和预设的数据阈值的关系,结合所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,数据阈值的大小可以根据实际应用的需求自定义设置。
具体可以分为以下情况:
当所述目标数据的数据大小小于等于数据阈值时,对目标数据采用内存中转策略作为目标传输策略,因为数据量较小时,内存中转策略的传输效率较高。
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中未缓存时,所述目标数据对应的目标传输策略为点对点传输策略;在目标数据的数据量较大时,且系统的内存中没有缓存时,采用点对点传输策略一方面可以减少系统的内存的占用,另一方面可以缩短通信路径并且提高传输效率。
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中全部缓存时,所述目标数据对应的目标传输策略为内存中转策略;虽然目标数据的数据量较大,但是由于系统的内存中已经将目标数据全部缓存,将系统的内存中的目标数据传输至目标异构加速设备的内存中的传输效率比内存中转策略中两次数据拷贝的效率更高。
当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
参照图4,示出了本申请实施例提供的确定目标传输策略的流程图,在一种可行的实施方式中,具体包括以下过程:
A1:判断目标数据的数据大小是否大于数据阈值;
当所述目标数据的数据大小小于等于所述数据阈值时,执行步骤A2;
当所述目标数据的数据大小大于所述数据阈值时,执行步骤A3;
A2:确定目标数据对应的目标传输策略为内存中转策略;
A3:判断目标数据在系统的内存中的缓存情况是:未缓存、部分缓存还是全部缓存;
当目标数据在系统的内存中的缓存情况是未缓存时,执行步骤A4;
当目标数据在系统的内存中的缓存情况是部分缓存时,执行步骤A5;
当目标数据在系统的内存中的缓存情况是全部缓存时,执行步骤A2;
A4:确定目标数据对应的目标传输策略为点对点传输策略;
A5:根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
具体地,当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中部分缓存时,枚举所述目标数据中多个数据块各自对应的候选传输策略组成的所有传输策略组合;然后通过代价模型分别计算任一传输策略组合的传输代价;将所述传输代价最小的传输策略组合作为所述目标数据的目标传输策略,所述目标传输策略中多个数据块各自对应的候选传输策略为多个数据块各自对应的传输策略。
示例地,目标数据1的数据大小为,/>大于数据阈值,在文件缓存信息表中划分为数据块1、数据块2和数据块3,假设数据块1和数据块3未在系统的内存中缓存,而数据块2已经在系统的内存中缓存,则有:
首先,枚举目标数据1中3个数据块各自对应的候选传输策略组成的所有传输策略组合,包括8种传输策略组合:
{数据块1_内存中转策略、数据块2_内存中转策略、数据块3_内存中转策略}、
{数据块1_内存中转策略、数据块2_内存中转策略、数据块3_点对点传输策略}、
{数据块1_内存中转策略、数据块2_点对点传输策略、数据块3_内存中转策略}、
{数据块1_内存中转策略、数据块2_点对点传输策略、数据块3_点对点传输策略}、
{数据块1_点对点传输策略、数据块2_内存中转策略、数据块3_内存中转策略}、
{数据块1_点对点传输策略、数据块2_内存中转策略、数据块3_点对点传输策略}、
{数据块1_点对点传输策略、数据块2_点对点传输策略、数据块3_内存中转策略}、
{数据块1_点对点传输策略、数据块2_点对点传输策略、数据块3_点对点传输策略};
接着,为了便于计算,还可以将任一传输策略组合中相邻且候选传输策略相同的数据块进行合并,则上述8种传输策略组合可以表示为:
{数据块1&数据块2&数据块3_内存中转策略}、
{数据块1&数据块2_内存中转策略、数据块3_点对点传输策略}、
{数据块1_内存中转策略、数据块2_点对点传输策略、数据块3_内存中转策略}、
{数据块1_内存中转策略、数据块2_&数据块3点对点传输策略}、
{数据块1_点对点传输策略、数据块2&数据块3_内存中转策略}、
{数据块1_点对点传输策略、数据块2_内存中转策略、数据块3_点对点传输策略}、
{数据块1&数据块2_点对点传输策略、数据块3_内存中转策略}、
{数据块1&数据块2&数据块3_点对点传输策略};
接着,将上述合并后的8种传输策略组合分别通过代价模型分别计算各自对应的传输代价。
所述代价模型包括内存中转策略对应的代价子模型和点对点传输策略对应的代价子模型,通过所述内存中转策略对应的代价子模型,计算该传输策略组合中候选传输策略为内存中转策略的每个数据块对应的传输代价;通过所述点对点传输策略对应的代价子模型,计算该传输策略组合中候选传输策略为点对点传输策略的每个数据块对应的传输代价;最后将该传输策略组合中所有数据块各自对应的传输代价的总和,作为该传输策略组合对应的传输代价。
在一种可行的实施方式中,所述内存中转策略对应的代价子模型为:
其中,为任一数据块的数据大小,/>为内存中转策略中读取/>大小的数据块时的花费时间,/>均为常量,N为服务器的中央处理器的核数。
在一种可行的实施方式中,所述点对点传输策略对应的代价子模型为:
其中:为任一数据块的数据大小,/>为点对点传输策略中读取/>大小的数据块时的花费时间,/>是一个常数,/>为常数,/>为代表点对点传输策略的带宽的常数,/>为一个常数。
最后选择传输代价最小的传输策略组合作为所述目标数据的目标传输策略,且目标传输策略中多个数据块各自对应的候选传输策略为多个数据块各自对应的传输策略。
示例地,若目标数据1的传输代价最小的传输策略组合为{数据块1&数据块2&数据块3_内存中转策略},则表征目标数据1的数据块1-3各自对应的传输策略均为内存中转策略。
若目标数据1的传输代价最小的传输策略组合为{数据块1_内存中转策略、数据块2_&数据块3点对点传输策略},则表征目标数据1的数据块1对应的传输策略为内存中转策略;而数据块2和数据块3各自对应的传输策略为点对点传输策略,此时,虽然数据块2已经在系统的内存中缓存了,但针对于目标数据1整体而言,若是根据数据块1_内存中转策略、数据块2_&数据块3点对点传输策略,传输时间更短,传输效率更高。
因此,本方法根据目标数据的数据大小和在系统的内存中的缓存情况,动态地生成更适应于目标数据的目标传输策略,可以提高数据传输过程的效率,缩短数据传输的时间。
此外,本实施例中采用CPU获取目标数据和目标异构加速设备,以及确定目标数据对应的目标传输策略,但在实际应用的过程中,还可以是采用编程后可以实现获取目标数据和目标异构加速设备,以及确定目标数据对应的目标传输策略的其他软件模块执行。
S103:根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中。
在根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略之后,所述方法还可以根据所述目标数据对应的目标传输策略和所述目标异构加速设备的内存偏移位置,确定所述目标数据传输至所述目标异构加速设备的内存时的目标地址。
如果目标数据只有一个数据块时,目标数据在目标异构加速设备的内存中对应的目标地址也是该数据块所对应的目标地址。
而当所述目标数据的多个数据块对应各自的传输策略时,分别确定所述多个数据块各自传输至所述目标异构加速设备的内存时的目标地址。
示例地,目标数据1在文件缓存信息表中划分为数据块1、数据块2和数据块3,则分别确定数据块1对应的目标地址1、数据块2对应的目标地址2以及数据块3对应的目标地址3。
在一种可行的实施方式中,为了将目标数据在固态硬盘中的偏移地址和目标地址进行映射,还可以根据所述目标数据在所述固态硬盘中的起始位置、数据大小以及对应的目标地址,构建传输组合表。
所述传输组合表为包括所述目标数据的一个或多个数据块各自对应的传输信息块组成的链表,任一数据块对应的传输信息块包括该数据块在所述固态硬盘中的偏移地址、数据块大小、目标地址、传输策略以及第二指针,所述第二指针用于指向另一个数据块在所述固态硬盘中的偏移地址。
具体地,考虑到部分异构加速设备可以在未收到全部数据时,仅针对收到的部分数据就可以进行数据处理,因此可以根据异构加速设备的具体情况将数据序列化,当传完某一部分数据就通知异构加速设备进行处理,进一步提高异构加速设备的性能。
因此,还可以在所述传输组合表的任一数据块对应的传输信息块中,添加一个或多个中断位置;所述中断位置用于标记所述数据块的中断偏移地址,当所述数据块传输至所述中断偏移地址时,触发数据处理中断以使所述目标异构加速设备进行数据处理。
示例地,一个数据块的在固态硬盘中的起始地址为0,数据大小为50M时,如果将该数据块的在固态硬盘中的偏移地址为25M设置为中断偏移地址,即设置了中断位置,则该数据块在传输过程中,当传输至25M时会向中央处理器发送数据处理中断,而中央处理器响应于数据处理中断后可以通知异构加速设备进行数据处理。
参照图5,示出了本申请实施例提供的传输组合表的示意图,目标数据划分为3个数据块:数据块1-数据块3,因此传输组合表中包括3个传输信息块,且3个传输信息块根据数据块在所述固态硬盘中的偏移地址的先后顺序排序;每个传输信息块中包括对应的数据块在固态硬盘中的偏移地址、数据块大小、目标地址、传输策略以及第二指针,还包括每个数据块对应的中断位置,且对于一个数据块而言,可以设置多个中断位置;数据块1对应的传输信息块1中的第二指针指向数据块2对应的传输信息块2中的偏移地址,数据块2对应的传输信息块2中的第二指针指向数据块3对应的传输信息块3中的偏移地址。
在生成传输组合表后,将所述目标数据传输到所述目标异构加速设备的内存中时,可以根据所述传输组合表中任一数据块在所述固态硬盘中的偏移地址、目标地址以及传输策略,将该数据块传输至所述目标异构加速设备的内存中,具体传输时,可以根据传输组合表中链表的顺序进行数据传输。
当任一数据块的传输策略为内存中转策略时,若该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块,通过第二内存访问控制器传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
当任一数据块的传输策略为内存中转策略时,若该数据块未存储在所述系统的内存中,所述固态硬盘的第一内存访问控制器将该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块,通过第二内存访问控制器传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
当任一数据块的传输策略为点对点传输策略时,所述固态硬盘的第一内存访问控制器将该数据块传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
参照图6,示出了本实施例提供的数据传输过程的执行图,在一种可行的实施方式中,CPU确定目标数据的任一数据块的传输策略为内存中转策略时;如图6中(a)所示,若系统的内存中已缓存了该数据块时,CPU控制目标异构加速设备侧的第二内存访问控制器从系统的内存中获取该数据块,将该数据块传输至目标异构加速设备的内存中;如图6中(b)所示,若系统的内存中未缓存该数据块,CPU控制固态硬盘侧的第一内存访问控制器将该数据块存储在系统的内存中,然后控制目标异构加速设备侧的第二内存访问控制器将系统内存中的该数据块传输至目标异构加速设备的内存中。
参照图7,示出了本实施例提供的数据传输过程的执行图,在一种可行的实施方式中,CPU确定目标数据的任一数据块的传输策略为点对点传输策略时;CPU控制固态硬盘侧的第一内存访问控制器将该数据块传输至所述目标异构加速设备的内存中。
在一种可行的实施方式中,在将该数据块传输至所述目标异构加速设备的内存的过程中,当任一数据块在传输至中断位置时,向中央处理器发送数据处理中断;所述中央处理器响应所述数据处理中断后,在所述目标异构加速设备的门铃中断状态寄存器中写入目标值;所述目标异构加速设备根据所述门铃中断状态寄存器中的目标值,进行数据处理;其中,当所述目标异构加速设备的门铃中断状态寄存器中写入表征数据传输完毕的目标值时,所述门铃中断状态寄存器中包括该数据块在所述目标异构加速设备的内存中的起始位置以及数据块大小。
本实施例提供的方法,可以动态地根据目标数据的数据大小以及目标数据在系统的内存中的缓存情况,选择适合目标数据的目标传输策略,传输策略不仅包括内存中转策略和点对点传输策略,还包括根据目标数据的数据大小以及目标数据在系统的内存中的缓存情况,生成内存中转策略和点对点传输策略的组合。特别是在所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,可以显著降低数据传输的时间,提高数据传输效率。
参照图8,示出了本申请实施例提供的一种面向异构计算的数据传输装置的功能模块图,应用于包括异构加速设备和固态硬盘的异构加速系统,所述装置包括:
获取模块100,用于获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备;
目标传输策略确定模块200,用于根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合;
传输模块300,用于根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中;
其中,当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
可选地,所述获取模块包括:
请求单元,用于响应于请求操作,确定所述目标异构加速设备和所述目标数据;
第一调用单元,用于调用mmap函数,将所述目标异构加速设备的内存映射到进程的地址空间;
第二调用单元,用于调用自定义读函数,获取所述目标数据在所述固态硬盘中的起始位置和数据大小,获取所述目标异构加速设备的内存偏移位置。
可选地,所述装置还包括:
文件缓存信息表构建模块,用于根据所述目标数据在所述系统的内存中的缓存情况、所述目标数据在所述固态硬盘中的起始位置和数据大小,构建文件缓存信息表;
所述文件缓存信息表为包括所述目标数据的一个或多个数据块各自对应的信息块组成的链表,任一数据块对应的信息块中包括该数据块在所述固态硬盘中的偏移地址、数据块大小、缓存所在地址以及第一指针,所述第一指针用于指向另一个数据块在所述固态硬盘中的偏移地址,所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的。
可选地,所述目标传输策略确定模块包括:
第一目标传输策略确定单元,用于当所述目标数据的数据大小小于等于所述数据阈值时,所述目标数据对应的目标传输策略为内存中转策略。
可选地,所述目标传输策略确定模块包括:
第二目标传输策略确定单元,用于当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中未缓存时,所述目标数据对应的目标传输策略为点对点传输策略。
可选地,所述目标传输策略确定模块包括:
第三目标传输策略确定单元,用于当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中全部缓存时,所述目标数据对应的目标传输策略为内存中转策略。
可选地,所述目标传输策略确定模块包括:
第四目标传输策略确定单元,用于当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中部分缓存时,枚举所述目标数据中多个数据块各自对应的候选传输策略组成的所有传输策略组合,所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的;
通过代价模型分别计算任一传输策略组合的传输代价;
将所述传输代价最小的传输策略组合作为所述目标数据的目标传输策略,所述目标传输策略中多个数据块各自对应的候选传输策略为多个数据块各自对应的传输策略。
可选地,所述第四目标传输策略确定单元包括:
第一计算子单元,用于通过所述内存中转策略对应的代价子模型,计算该传输策略组合中候选传输策略为内存中转策略的每个数据块对应的传输代价;
第一计算子单元,用于通过所述点对点传输策略对应的代价子模型,计算该传输策略组合中候选传输策略为点对点传输策略的每个数据块对应的传输代价;
第三计算子单元,用于将该传输策略组合中所有数据块各自对应的传输代价的总和,作为该传输策略组合对应的传输代价。
可选地,所述第四目标传输策略确定单元还包括:
合并子单元,将任一传输策略组合中相邻且候选传输策略相同的数据块进行合并。
可选地,所述装置还包括:
目标地址确定模块,用于根据所述目标数据对应的目标传输策略和所述目标异构加速设备的内存偏移位置,确定所述目标数据传输至所述目标异构加速设备的内存时的目标地址;
其中,当所述目标数据的多个数据块对应各自的传输策略时,分别确定所述多个数据块各自传输至所述目标异构加速设备的内存时的目标地址。
可选地,所述装置还包括:
传输组合表构建模块,用于根据所述目标数据在所述固态硬盘中的起始位置、数据大小以及对应的目标地址,构建传输组合表;
所述传输组合表为包括所述目标数据的一个或多个数据块各自对应的传输信息块组成的链表,任一数据块对应的传输信息块包括该数据块在所述固态硬盘中的偏移地址、数据块大小、目标地址、传输策略以及第二指针,所述第二指针用于指向另一个数据块在所述固态硬盘中的偏移地址。
可选地,所述传输组合表构建模块包括:
中断设置单元,用于在所述传输组合表的任一数据块对应的传输信息块中,添加一个或多个中断位置;
其中,所述中断位置用于标记所述数据块的中断偏移地址,当所述数据块传输至所述中断偏移地址时,触发数据处理中断以使所述目标异构加速设备进行数据处理。
可选地,所述传输模块包括:
传输单元,用于根据所述传输组合表中任一数据块在所述固态硬盘中的偏移地址、目标地址以及传输策略,将该数据块传输至所述目标异构加速设备的内存中。
可选地,所述传输单元包括:
第一传输子单元,用于当任一数据块的传输策略为内存中转策略时,若该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块传输至该数据块在所述目标异构加速设备的内存中对应的目标地址;
第二传输子单元,用于当任一数据块的传输策略为内存中转策略时,若该数据块未存储在所述系统的内存中,所述固态硬盘的第一内存访问控制器将该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
可选地,所述传输单元包括:
第三传输子单元,用于当任一数据块的传输策略为点对点传输策略时,所述固态硬盘的第一内存访问控制器将该数据块传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
可选地,所述装置还包括:
中断处理模块,用于当任一数据块在传输至中断位置时,向中央处理器发送数据处理中断;所述中央处理器响应所述数据处理中断后,在所述目标异构加速设备的门铃中断状态寄存器中写入目标值;所述目标异构加速设备根据所述门铃中断状态寄存器中的目标值,进行数据处理;
其中,当所述目标异构加速设备的门铃中断状态寄存器中写入表征数据传输完毕的目标值时,所述门铃中断状态寄存器中包括该数据块在所述目标异构加速设备的内存中的起始位置以及数据块大小。
参照图9,示出了本申请实施例提供的一种计算处理设备的示意图,包括:
存储器601,其中存储有计算机可读代码;一个或多个处理器602,当所述计算机可读代码被所述一个或多个处理器602执行时,所述计算处理设备执行实施例所述的面向异构计算的数据传输方法。
参照图10,示出了本申请实施例提供的一种非易失性可读存储介质的示意图,所述非易失性可读存储介质700存储有计算机程序701,其中,所述计算机程序701被处理器执行时执行实施例所述的面向异构计算的数据传输方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框,以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (22)
1.一种面向异构计算的数据传输方法,其特征在于,应用于包括异构加速设备和固态硬盘的异构加速系统,所述方法包括:
获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备;
根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合;
根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中;
其中,当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
2.根据权利要求1所述的方法,其特征在于,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小小于等于所述数据阈值时,所述目标数据对应的目标传输策略为内存中转策略。
3.根据权利要求1所述的方法,其特征在于,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中未缓存时,所述目标数据对应的目标传输策略为点对点传输策略。
4.根据权利要求1所述的方法,其特征在于,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中全部缓存时,所述目标数据对应的目标传输策略为内存中转策略。
5.根据权利要求1所述的方法,其特征在于,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,包括:
当所述目标数据的数据大小大于所述数据阈值,且所述目标数据在所述系统的内存中部分缓存时,枚举所述目标数据中多个数据块各自对应的候选传输策略组成的所有传输策略组合,所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的;
通过代价模型分别计算任一传输策略组合的传输代价;
将所述传输代价最小的传输策略组合作为所述目标数据的目标传输策略,所述目标传输策略中多个数据块各自对应的候选传输策略为多个数据块各自对应的传输策略。
6.根据权利要求5所述的方法,其特征在于,所述代价模型包括内存中转策略对应的代价子模型和点对点传输策略对应的代价子模型,通过代价模型分别计算任一传输策略组合的传输代价,包括:
通过所述内存中转策略对应的代价子模型,计算该传输策略组合中候选传输策略为内存中转策略的每个数据块对应的传输代价;
通过所述点对点传输策略对应的代价子模型,计算该传输策略组合中候选传输策略为点对点传输策略的每个数据块对应的传输代价;
将该传输策略组合中所有数据块各自对应的传输代价的总和,作为该传输策略组合对应的传输代价。
7.根据权利要求6所述的方法,其特征在于,通过代价模型分别计算任一传输策略组合的传输代价的过程中,所述方法还包括:
将任一传输策略组合中相邻且候选传输策略相同的数据块进行合并。
8.根据权利要求6所述的方法,其特征在于,通过所述内存中转策略对应的代价子模型,计算该传输策略组合中候选传输策略为内存中转策略的每个数据块对应的传输代价,包括:
对于任一所述候选传输策略为内存中转策略的数据块,所述内存中转策略对应的代价子模型根据该数据块的数据大小,计算每个数据块各自对应的传输代价;
其中,所述内存中转策略对应的代价子模型为:
其中,为任一数据块的数据大小,/>为内存中转策略中读取/>大小的数据块时的花费时间,/>均为常量,N为服务器的中央处理器的核数。
9.根据权利要求6所述的方法,其特征在于,通过所述点对点传输策略对应的代价子模型,计算该传输策略组合中候选传输策略为点对点传输策略的每个数据块对应的传输代价,包括:
对于任一所述候选传输策略为点对点传输策略的数据块,所述点对点传输策略对应的代价子模型根据该数据块的数据大小以及点对点传输过程的带宽,计算每个数据块各自对应的传输代价;
所述点对点传输策略对应的代价子模型为:
其中:为任一数据块的数据大小,/>为点对点传输策略中读取/>大小的数据块时的花费时间,/>是一个常数,/>为常数,/>为代表点对点传输策略的带宽的常数,/>为一个常数。
10.根据权利要求1-9任一项所述的方法,其特征在于,获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备,包括:
响应于请求操作,确定所述目标异构加速设备和所述目标数据;
调用mmap函数,将所述目标异构加速设备的内存映射到进程的地址空间;
调用自定义读函数,获取所述目标数据在所述固态硬盘中的起始位置和数据大小,获取所述目标异构加速设备的内存偏移位置。
11.根据权利要求9所述的方法,其特征在于,获取所述目标数据在所述固态硬盘中的起始位置和数据大小之后,所述方法还包括:
根据所述目标数据在所述系统的内存中的缓存情况、所述目标数据在所述固态硬盘中的起始位置和数据大小,构建文件缓存信息表;
所述文件缓存信息表为包括所述目标数据的一个或多个数据块各自对应的信息块组成的链表,任一数据块对应的信息块中包括该数据块在所述固态硬盘中的偏移地址、数据块大小、缓存所在地址以及第一指针,所述第一指针用于指向另一个数据块在所述固态硬盘中的偏移地址,所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的。
12.根据权利要求1-9任一项所述的方法,其特征在于,根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略之后,所述方法还包括:
根据所述目标数据对应的目标传输策略和所述目标异构加速设备的内存偏移位置,确定所述目标数据传输至所述目标异构加速设备的内存时的目标地址;
其中,当所述目标数据包括多个数据块时,分别确定所述多个数据块各自传输至所述目标异构加速设备的内存时的目标地址;所述目标数据的多个数据块是根据目标数据在所述系统的内存中的缓存情况划分得到的。
13.根据权利要求12所述的方法,其特征在于,确定所述目标数据传输至所述目标异构加速设备的内存时的目标地址之后,所述方法还包括:
根据所述目标数据在所述固态硬盘中的起始位置、数据大小以及对应的目标地址,构建传输组合表;
所述传输组合表为包括所述目标数据的一个或多个数据块各自对应的传输信息块组成的链表,任一数据块对应的传输信息块包括该数据块在所述固态硬盘中的偏移地址、数据块大小、目标地址、传输策略以及第二指针,所述第二指针用于指向另一个数据块在所述固态硬盘中的偏移地址。
14.根据权利要求13所述的方法,其特征在于,根据所述目标数据在所述固态硬盘中的起始位置、数据大小以及对应的目标地址,构建传输组合表,包括:
在所述传输组合表的任一数据块对应的传输信息块中,添加一个或多个中断位置;
其中,所述中断位置用于标记所述数据块的中断偏移地址,当所述数据块传输至所述中断偏移地址时,触发数据处理中断以使所述目标异构加速设备进行数据处理。
15.根据权利要求13或14所述的方法,其特征在于,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中,包括:
根据所述传输组合表中任一数据块在所述固态硬盘中的偏移地址、目标地址以及传输策略,将该数据块传输至所述目标异构加速设备的内存中。
16.根据权利要求15所述的方法,其特征在于,根据所述传输组合表中任一数据块在所述固态硬盘中的偏移地址、目标地址以及传输策略,将该数据块传输至所述目标异构加速设备的内存的过程中,所述方法还包括:
当任一数据块在传输至中断位置时,向中央处理器发送数据处理中断;
所述中央处理器响应所述数据处理中断后,在所述目标异构加速设备的门铃中断状态寄存器中写入目标值;
所述目标异构加速设备根据所述门铃中断状态寄存器中的目标值,进行数据处理;
其中,当所述目标异构加速设备的门铃中断状态寄存器中写入表征数据传输完毕的目标值时,所述门铃中断状态寄存器中包括该数据块在所述目标异构加速设备的内存中的起始位置以及数据块大小。
17.根据权利要求1所述的方法,其特征在于,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中,包括:
当所述目标数据中任一数据块的传输策略为内存中转策略时,若该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块传输至该数据块在所述目标异构加速设备的内存中对应的地址;
当所述目标数据中任一数据块的传输策略为内存中转策略时,若该数据块未存储在所述系统的内存中,所述固态硬盘的第一内存访问控制器将该数据块存储在所述系统的内存中,将所述系统的内存中存储的该数据块传输至该数据块在所述目标异构加速设备的内存中对应的地址。
18.根据权利要求1所述的方法,其特征在于,根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中,包括:
当所述目标数据中任一数据块的传输策略为点对点传输策略时,所述固态硬盘的第一内存访问控制器将该数据块传输至该数据块在所述目标异构加速设备的内存中对应的目标地址。
19.一种面向异构计算的数据传输装置,其特征在于,应用于包括异构加速设备和固态硬盘的异构加速系统,所述装置包括:
获取模块,用于获取目标数据的数据大小、所述目标数据在所述系统的内存中的缓存情况以及目标异构加速设备;
目标传输策略确定模块,用于根据所述目标数据的数据大小和所述目标数据在所述系统的内存中的缓存情况,确定所述目标数据对应的目标传输策略,所述目标传输策略包括内存中转策略、点对点传输策略以及内存中转策略和点对点传输策略的组合;
传输模块,用于根据所述目标传输策略将所述目标数据传输到所述目标异构加速设备的内存中;
其中,当所述目标数据的数据大小大于预设的数据阈值,且所述目标数据在所述系统的内存中部分缓存时,根据代价模型确定所述目标数据对应的传输代价最小的内存中转策略和/或点对点传输策略,作为所述目标数据对应的目标传输策略。
20.一种异构加速系统,其特征在于,所述系统用于执行权利要求1-18任一项所述的面向异构计算的数据传输方法,所述系统包括异构加速设备和固态硬盘;
所述异构加速设备和所述固态硬盘连接同一高速串行计算机扩展总线转换器;
所述固态硬盘配置有第一内存访问控制器,所述异构加速设备配置有第二内存访问控制器。
21.一种计算处理设备,其特征在于,包括:
存储器,其中存储有计算机可读代码;一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行权利要求1-18任一项所述的面向异构计算的数据传输方法。
22.一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时执行权利要求1-18任一项所述的面向异构计算的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410491042.3A CN118093231B (zh) | 2024-04-23 | 2024-04-23 | 一种面向异构计算的数据传输方法、装置、系统和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410491042.3A CN118093231B (zh) | 2024-04-23 | 2024-04-23 | 一种面向异构计算的数据传输方法、装置、系统和产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118093231A true CN118093231A (zh) | 2024-05-28 |
CN118093231B CN118093231B (zh) | 2024-08-02 |
Family
ID=91165529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410491042.3A Active CN118093231B (zh) | 2024-04-23 | 2024-04-23 | 一种面向异构计算的数据传输方法、装置、系统和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093231B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118503196A (zh) * | 2024-07-17 | 2024-08-16 | 苏州元脑智能科技有限公司 | 异构计算系统及数据传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111225042A (zh) * | 2019-12-27 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 数据传输的方法、装置、计算机设备以及存储介质 |
CN115168259A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和计算机可读存储介质 |
CN115665137A (zh) * | 2022-11-07 | 2023-01-31 | 芯跳科技(广州)有限公司 | 一种数据处理方法及装置 |
CN117573574A (zh) * | 2024-01-15 | 2024-02-20 | 北京开源芯片研究院 | 一种预取方法、装置、电子设备及可读存储介质 |
-
2024
- 2024-04-23 CN CN202410491042.3A patent/CN118093231B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111225042A (zh) * | 2019-12-27 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 数据传输的方法、装置、计算机设备以及存储介质 |
CN115168259A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和计算机可读存储介质 |
WO2024051041A1 (zh) * | 2022-09-06 | 2024-03-14 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和非易失性可读存储介质 |
CN115665137A (zh) * | 2022-11-07 | 2023-01-31 | 芯跳科技(广州)有限公司 | 一种数据处理方法及装置 |
CN117573574A (zh) * | 2024-01-15 | 2024-02-20 | 北京开源芯片研究院 | 一种预取方法、装置、电子设备及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118503196A (zh) * | 2024-07-17 | 2024-08-16 | 苏州元脑智能科技有限公司 | 异构计算系统及数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118093231B (zh) | 2024-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4429213A2 (en) | Network interface for data transport in heterogeneous computing environments | |
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
CN118093231B (zh) | 一种面向异构计算的数据传输方法、装置、系统和产品 | |
US11416295B2 (en) | Technologies for providing efficient access to data in an edge infrastructure | |
US10389839B2 (en) | Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node | |
CN111936973A (zh) | 用于提供在云边缘处对服务的高效迁移的技术 | |
JP5666722B2 (ja) | メモリ・インターフェース | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
JP2010134628A (ja) | メモリコントローラおよびデータ処理装置 | |
US20140068125A1 (en) | Memory throughput improvement using address interleaving | |
CN107015923B (zh) | 用于管理探听操作的一致性互连和包括其的数据处理装置 | |
US11435952B2 (en) | Memory system and control method controlling nonvolatile memory in accordance with command issued by processor | |
CN117806833B (zh) | 一种数据处理系统、方法及介质 | |
EP4235441A1 (en) | System, method and apparatus for peer-to-peer communication | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
CN105138489A (zh) | 网络数据包缓存空间id管理单元 | |
US20190379613A1 (en) | Technologies for providing adaptive utilization of different interconnects for workloads | |
CN110750210A (zh) | 存储系统 | |
CN113253939B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US11954037B2 (en) | Memory address allocation and cache mapping to retain data in cache | |
CN117389483B (zh) | 一种内存管理方法、装置、电子设备及可读存储介质 | |
EP4372563A1 (en) | Systems, methods, and apparatus for operating computational devices | |
US20240311291A1 (en) | Memory system and method of controlling the memory system | |
JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
CN116244215A (zh) | 数据包处理加速装置 |
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 |