CN113934659A - 用于时间同步存储递送的系统、方法和装置 - Google Patents
用于时间同步存储递送的系统、方法和装置 Download PDFInfo
- Publication number
- CN113934659A CN113934659A CN202110760219.1A CN202110760219A CN113934659A CN 113934659 A CN113934659 A CN 113934659A CN 202110760219 A CN202110760219 A CN 202110760219A CN 113934659 A CN113934659 A CN 113934659A
- Authority
- CN
- China
- Prior art keywords
- data
- gfid
- artificial intelligence
- timestamp
- intelligence model
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 13
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 254
- 238000012549 training Methods 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 14
- 239000004744 fabric Substances 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 239000007787 solid Substances 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 77
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- 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
-
- 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/1689—Synchronisation and timing concerns
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
Abstract
公开了用于时间同步存储递送的系统、方法和装置。所述方法包括在第一计算装置从第一人工智能处理单元(AI PU)接收第一输入/输出(IO)命令,第一IO命令与第一AI模型训练操作相关联。所述方法还包括在第一计算装置从第二AI PU接收第二IO命令,第二IO命令与第二AI模型训练操作相关联。所述方法还包括基于分配给第一AI模型训练操作的第一带宽,将第一时间戳分配给第一IO命令。所述方法还包括基于分配给第二AI模型训练操作的第二带宽,将第二时间戳分配给第二IO命令。
Description
本申请要求于2020年7月14日提交的第63/051,883号美国临时专利申请的优先权以及于2021年1月21日提交的第17/154,444号美国申请的优先权,所述美国临时专利申请和所述美国申请的内容通过引用全部包含于此。
技术领域
发明构思的实施例涉及用于时间同步存储递送的系统、方法和装置。
背景技术
使用大数据集来训练人工智能(AI)模型(例如,变分自编码器(variationalauto-encoder))。AI系统可包括被配置为并行处理大数据集以适当地训练一个或多个AI模型的数千个图形处理器(GPU)。
发明内容
公开了用于执行时间同步存储递送的存储系统和方法。这些系统和方法可用于支持在人工智能模型的训练期间处理大数据集。
一种方法包括在第一计算装置从第一人工智能处理单元(AI PU)接收第一输入/输出(IO)命令,第一IO命令与第一AI模型训练操作相关联。所述方法还包括在第一计算装置从第二AI PU接收第二IO命令,第二IO命令与第二AI模型训练操作相关联。所述方法还包括基于分配给第一AI模型训练操作的第一带宽,将第一时间戳分配给第一IO命令。所述方法还包括基于分配给第二AI模型训练操作的第二带宽,将第二时间戳分配给第二IO命令。
一种方法包括在存储装置接收对第一数据块的第一请求,第一请求包括第一时间戳和第一全局流标识符(GFID)。所述方法还包括在存储装置接收对第二数据块的第二请求,第二请求包括第二时间戳和第二GFID。所述方法还包括在存储装置基于第一GFID识别第一人工智能(AI)模型处理单元。所述方法还包括在存储装置基于第二GFID识别第二AI模型处理单元。所述方法还包括将第一数据块从存储装置发送到第一AI模型处理单元,其中,第一数据块的发送的时序基于第一时间戳。所述方法还包括将第二数据块从存储装置发送到第二AI模型处理单元,其中,第二数据块的发送的时序基于第二时间戳。
一种计算装置包括网络接口以及处理器单元。处理器单元被配置为从第一人工智能处理单元(AI PU)接收第一输入/输出(IO)命令,第一IO命令与第一AI模型训练操作相关联。处理器单元还被配置为从第二AI PU接收第二IO命令,第二IO命令与第二AI模型训练操作相关联。处理器单元还被配置为基于分配给第一AI模型训练操作的第一带宽,将第一时间戳分配给第一IO命令。处理器单元还被配置为基于分配给第二AI模型训练操作的第二带宽,将第二时间戳分配给第二IO命令。
一种存储装置包括网络接口以及处理器单元。处理器单元被配置为接收对第一数据块的第一请求,第一请求包括第一时间戳和第一全局流标识符(GFID)。处理器单元还被配置为接收对第二数据块的第二请求,第二请求包括第二时间戳和第二GFID。处理器单元还被配置为基于第一GFID识别第一人工智能(AI)模型处理单元。处理器单元还被配置为基于第二GFID识别第二AI模型处理单元。处理器单元还被配置为启动通过网络接口的第一数据块到第一人工智能模型处理单元的发送,其中,第一数据块的发送的时序基于第一时间戳。处理器单元还被配置为启动通过网络接口的第二数据块到第二人工智能模型处理单元的发送,其中,第二数据块的发送的时序基于第二时间戳。
附图说明
图1是用于执行时间同步存储递送的系统的示图。
图2是用于执行时间同步存储递送的存储装置的示图。
图3是包括图2的多个存储装置的用于执行时间同步存储递送的系统的另一示图。
图4是全局流标识符数据库条目(global flow identifier database entry)的示图。
图5是示出用于构造存储查询计划的方法的流程图。
图6是示出用于将时间戳分配给IO请求的方法的流程图。
图7是示出用于响应于IO请求而输出数据的方法的流程图。
图8是示出IO命令的同步处理的序列图。
图9是示出包括多个人工智能主机装置和多个对象存储系统的系统的示图。
具体实施方式
参照图1,示出了用于时间同步存储递送的系统100的示图。系统100包括人工智能(AI)主机装置102。AI主机装置102可对应于一个或多个计算装置。AI主机装置102包括AI应用108和数据加载器110。AI应用108和数据加载器110可对应于可由AI主机装置102的处理器(未示出)执行的软件。AI主机装置102还包括网络接口控制器(NIC)104、动态随机存取存储器(DRAM)106和多个AI模型处理单元(AI PU)112a至112h。NIC 104可对应于无线NIC或有线NIC。多个AI PU包括第一AI PU 112a、第二AI PU 112b、第三AI PU 112c、第四AI PU112d、第五AI PU 112e、第六AI PU 112f、第七AI PU 112g和第八AI PU 112h。在该示例实施例中示出了8个AI PU 112a至112h,但是可使用任何数量。多个AI PU 112a至112h可包括一个或多个图形处理器(GPU)、可由处理器执行的一个或多个应用、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、中央处理器(CPU)、另外的处理组件或它们的组合。在一些示例中,AI PU 112a至112h可被配置为处理与AI操作相关联的工作负载。在一些示例中,工作负载可包括矩阵乘法和/或卷积密集型操作。AI主机装置102可对应于物理装置或虚拟装置(例如,由云计算系统实现的物理装置或虚拟装置)。
在一些实施方式中,AI主机装置102与图1中示出的示例不同地被配置。例如,DRAM106可利用不同类型的存储器单元(例如,静态随机存取存储器SRAM等)替换。作为另一示例,NIC 104可利用不同类型的网络适配器替换。作为另一示例,AI主机装置102可包括与示出的GPU的数量不同数量的GPU。此外,AI主机装置102可包括图1中未示出的附加组件。例如,AI主机装置102可包括被配置为执行与AI应用108、数据加载器110、AI PU 112a至112h或它们的组合对应的指令的一个或多个处理器。
系统100还包括对象存储系统120。对象存储系统120可对应于一个或多个计算装置。在一些实施方式中,对象存储系统120对应于服务器(例如,对象存储服务器)。这样的“服务器”可以是物理装置或虚拟装置(例如,由云计算系统实现的物理装置或虚拟装置)。
对象存储系统120包括NIC 122、处理器单元121和存储器缓冲器124a至124h。在一些实施方式中,对象存储系统120包括与AI主机装置102中包括的AI PU的数量相等的数量的缓冲器124a至124h。在其他实施方式中,对象存储系统120包括不同数量的缓冲器。处理器单元121可对应于被配置为执行描述的动作的现场可编程门阵列、被配置为执行存储在存储器装置(未示出)中的指令以执行描述的动作的中央处理器、被配置为执行描述的动作的专用集成电路或其他处理装置。NIC 122可对应于无线NIC或有线NIC。存储器缓冲器124a至124h可对应于一个或多个存储器装置内的存储器空间。这样的存储器装置可包括DRAM、SRAM、另外的类型的存储器或它们的组合。在示出的示例中,存储器缓冲器124a至124h包括第一存储器缓冲器124a、第二存储器缓冲器124b、第三存储器缓冲器124c、第四存储器缓冲器124d、第五存储器缓冲器124e、第六存储器缓冲器124f、第七存储器缓冲器124g和第八存储器缓冲器124h。存储器缓冲器124a至124h中的每个可与不同的优先级相关联。例如,第一存储器缓冲器124a可与第一优先级相关联,并且第二存储器缓冲器124b可与第二优先级相关联。在其他示例中,对象存储系统120可包括不同数量的存储器缓冲器。
AI PU 112a至112h中的每个具有到NIC 122的单独连接。在一些实施方式中,通过AI主机装置102的NIC 104来维持这些连接。在其他实施方式中,通过AI PU 112a至112h的单独的网络适配器来维持连接。连接可以是直接的,或者可通过公共网络(例如,互联网)、专用网络或它们的组合。AI PU 112a至112h被配置为通过连接将输入/输出(IO)命令发送到对象存储系统120。例如,第一AI PU 112a可将请求第一数据对象的第一IO命令发送到对象存储系统120。AI PU被配置为基于获取的数据对象来训练一个或多个AI数据模型。例如,响应于接收到第一数据对象,第一AI PU 112a可训练AI模型(或AI模型的部分)并将训练后的模型(或训练后的模型的部分)返回到AI应用108。
如在此进一步描述的那样,对象存储系统120的处理器单元121被配置为基于包括在接收的IO命令中的全局流标识符(global flow identifier,GFID)将接收的命令缓冲在存储器缓冲器124a至124h中。对象存储系统120的处理器单元121被配置为基于存储器缓冲器124a至124h的优先级来获取IO命令并启动相关联的数据操作。例如,基于第一存储器缓冲器124a和第二存储器缓冲器124b的相对优先级,与从第二存储器缓冲器124b获取IO命令相比,对象存储系统120的处理器单元121可更频繁地从第一存储器缓冲器124a获取IO命令。
对象存储系统120的处理器单元121管理数据对象126a、126b。在图1中,标记了第一数据对象126a和第二数据对象126b。接收的IO命令可(例如,通过键值)识别数据对象。如在此进一步描述的那样,对象存储系统120的处理器单元121可被配置为启动两个或更多个数据对象到一个或多个AI PU的时间同步传送。由对象存储系统120管理的数据对象126a、126b可存储在一个或多个存储装置中。这些存储装置可通过NIC 122连接到对象存储系统120。因此,启动数据对象的传送可包括将请求发送到存储装置,请求用于将数据对象(或数据对象的一部分)传送到对象存储系统120或请求的AI PU。
在一些实施方式中,对象存储系统120的处理器单元121被配置为实现数据擦除编码方案(data erasure coding scheme)。对象存储系统120的处理器单元121可对数据对象执行数据擦除编码方案以生成一个或多个擦除编码(EC)块并将EC块存储在一个或多个存储装置上。响应于引用数据对象的IO命令,对象存储系统120的处理器单元121可被配置为确定哪个存储装置或哪些存储装置存储数据对象的EC块,并向那些存储装置发出IO请求。
在一些实施方式中,存储装置包括非易失性存储器快速(NVMe)装置、通过架构的NVMe(NVMe over fabric,NVMe-oF)目标、其他存储装置或它们的组合。
图2描绘了可存储一个或多个数据对象的EC块的存储装置200(例如,NVMe-oF目标)的示例。存储装置200包括NIC 201和处理器单元205。NIC 201可对应于无线NIC或有线NIC。处理器单元205可对应于被配置为执行描述的动作的现场可编程门阵列、被配置为执行存储在存储器装置(未示出)中的指令以执行描述的动作的中央处理器、被配置为执行描述的动作的专用集成电路或其他处理装置。存储装置200包括第一驱动器208a、第二驱动器208b、第三驱动器208c和第四驱动器208d。驱动器208a至208d中的每个可包括固态驱动器、硬盘驱动器、不同种类的计算机存储驱动器或它们的组合。驱动器208a至208d被配置为存储数据(例如,EC编码数据块)。在一些实施方式中,存储装置200包括与图2中示出的驱动器的数量不同数量的驱动器。
存储装置200包括第一级缓冲器202a、第二级缓冲器202b、第三级缓冲器202c和第四级缓冲器202d。其他实施方式可包括不同数量的级缓冲器。级缓冲器202a至202d可包括DRAM、SRAM、另外的类型的存储器或它们的组合。级缓冲器被配置为存储经由NIC 201从对象存储系统120接收的IO请求,存储从驱动器208a至208d获取的数据(例如,EC编码数据块)或它们的组合。例如,级缓冲器202a至202d全部可被配置为存储从对象存储系统120接收的IO请求,级缓冲器202a至202d全部可被配置为存储来自驱动器的数据块,或者级缓冲器202a至202d的第一子集可被配置为存储数据块,并且级缓冲器202a至202d的第二子集可被配置为存储IO请求。在一些实施方式中,存储装置200包括存储装置200中包括的每个驱动器一个缓冲器。在其他实施方式中,存储装置200包括不同数量的缓冲器(例如,每个驱动器一个缓冲器加上一个或多个输出缓冲器)。
如在此进一步描述的那样,在级缓冲器中的一个或多个被配置为接收IO请求的实施方式中,处理器单元205可基于与IO请求相关联的GFID将特定IO请求分配给级缓冲器202a至202d中的特定一个。级缓冲器202a至202d可具有相关联的优先级,并且存储在级缓冲器202a至202d中的IO请求可以以基于优先级确定的顺序从级缓冲器202a至202d被处理。类似地,如在此进一步描述的那样,在级缓冲器中的一个或多个被配置为从驱动器208a至208d接收数据的实施方式中,处理器单元205可基于与关联于特定数据的获取的IO请求相关联的GFID将特定数据(例如,特定块)分配给级缓冲器中的特定一个。如上所述,级缓冲器202a至202d可具有相关联的优先级。存储在级缓冲器202a至202d中的数据可以以基于优先级确定的顺序从级缓冲器202a至202d被发送(例如,到对象存储系统120或到AI PU 112a至112h中的一个或多个)。
存储装置200还包括总线206。总线206可包括外围组件互连快速(PCIe)总线或其他类型的总线。总线206将驱动器208a至208d与级缓冲器202a至202d连接。NIC 201和/或处理器单元205也可连接到总线206。图2描绘了在驱动器208a至208d和级缓冲器202a至202d之间流动的IO 204a至204d。这些IO 204a至204d可包括数据块、IO请求或它们的组合。在一些实施方式中,存储装置200包括可进一步连接到总线206的附加组件。
参照图3,展示了示出用于时间同步存储递送的系统的操作的示图。在图3的示例中,图1的对象存储系统120和AI PU 112a至112h(例如,直接地或通过一个或多个网络)连接到存储装置200a至200d。虽然示出了四个存储装置200a至200d,但是在其他示例中,对象存储系统120和/或AI PU 112a至112h可连接到不同数量的存储装置。此外,在一些示例中可包括与示出的示例中示出的AI PU的数量不同数量的AI PU。存储装置200a至200d中的每个是图2中示出的存储装置200的示例。应当注意,虽然存储装置200a至200d是存储装置200的示例,但是存储装置200a至200d可不相同。例如,如上所述,存储装置200可具有不同的配置(例如,不同数量或用途的级缓冲器等),并且第一存储装置200a可具有这些配置中的一种配置,而第二存储装置200b具有这些配置中的第二种配置。
此外,对象存储系统120、AI PU 112a至112h和存储装置200a至200d(例如,分别通过NIC 122和NIC 201)连接到GFID数据库302。GFID数据库302实现在计算装置上。在一些示例中,GFID数据库302实现在图1的AI主机装置102(例如,在AI PU 112a至112h中的一个或AI主机装置102的另外的处理器)上。在一些示例中,GFID数据库302实现在对象存储系统120上或存储装置200a至200d中的一个上。在一些示例中,GFID数据库302实现在AI PU112a至112h、存储装置200a至200d和对象存储系统120外部的计算装置上。
GFID数据库302被配置为存储识别与AI模型训练会话(或称为AI训练会话)相关联的资源的元数据。例如,GFID数据库302可存储GFID、与AI PU相关联的数据、与一个或多个存储装置相关联的数据以及与一个或多个对象存储系统相关联的数据之间的关联。与AIPU相关联的数据可包括AI PU的标识符(ID)、与AI PU相关联的连接标识符、与AI PU相关联的带宽或它们的组合。与一个或多个对象存储系统相关联的数据可包括每个对象存储系统的对象存储系统标识符、每个对象存储系统的连接标识符、与每个对象存储系统相关联的带宽或它们的组合。与一个或多个存储装置相关联的数据可包括每个存储装置的标识符、与每个存储装置相关联的连接标识符、与每个存储装置相关联的带宽或它们的组合。
参照图4,展示了示出GFID数据库302中的示例条目402的示图。在图4中示出的示例中,条目402包括全局流ID 404、与AI PU相关联的数据406、与一个或多个对象存储系统相关联的数据414、以及与一个或多个存储装置相关联的数据422。全局流ID 404可以是识别AI训练会话(或其他数据流)的唯一标识符。
与AI PU相关联的数据406描述AI训练会话(或其他数据流)中涉及的AI PU。与AIPU相关联的数据406包括实体标识符或名称408。实体标识符或名称408可包括网络地址(例如,互联网协议地址)、主机名、另外的标识符或它们的组合。数据406还包括与AI PU相关联的连接标识符410。连接标识符410可包括识别“由实体标识符或名称408识别的AI PU可发送和/或接收数据所通过的连接”的套接字标识符、其他类型的连接标识符或它们的组合。与AI PU相关联的数据406还包括带宽指示符412。带宽指示符412指示AI PU可用于在AI训练会话(或其他数据流)期间接收数据的带宽。
与一个或多个对象存储系统相关联的数据414包括与AI训练会话(或其他数据流)相关联的每个对象存储系统的对象存储系统标识符416。对象存储系统标识符416可包括网络地址(例如,互联网协议地址)、主机名、另外的标识符或它们的组合。与一个或多个对象存储系统相关联的数据414还包括与AI训练会话(或其他数据流)相关联的每个对象存储系统的连接标识符418。连接标识符418可包括识别“由对象存储系统标识符416识别的对象存储系统可发送和/或接收数据所通过的连接”的套接字标识符、其他类型的连接标识符或它们的组合。与一个或多个对象存储系统相关联的数据414还包括与AI训练会话(或其他数据流)相关联的每个对象存储系统的带宽指示符420。带宽指示符420指示对象存储系统可用于在AI训练会话(或其他数据流)期间发送和/或接收数据的带宽。
与一个或多个存储装置相关联的数据422包括与AI训练会话(或其他数据流)相关联的每个存储装置的目标标识符424。目标标识符424可包括网络地址(例如,互联网协议地址)、主机名、另外的标识符或它们的组合。与一个或多个存储装置相关联的数据422还包括与AI训练会话(或其他数据流)相关联的每个存储装置的连接标识符426。连接标识符426可包括识别“由目标标识符424识别的存储装置可发送和/或接收数据所通过的连接”的套接字标识符、其他类型的连接标识符或它们的组合。与一个或多个存储装置相关联的数据422还包括与AI训练会话(或其他数据流)相关联的每个存储装置的带宽指示符428。带宽指示符428指示存储装置可用于在AI训练会话(或其他数据流)期间发送和/或接收数据的带宽。
因此,图4描绘了全局流标识符数据库中的条目的示例,该条目将全局流标识符与描述在AI训练会话(或其他数据流)期间使用的各种资源的元数据相关联。
返回参照图3,在AI模型训练会话(或其他数据流)期间,第一AI PU 112a(或任何其他AI PU)可将IO命令(例如,读取请求)发送到对象存储系统120。第一AI PU 112a可包括与IO命令中的AI训练会话(或其他数据流)相关联的GFID。在一些实施方式中,第一AI PU112a可基于如由GFID数据库302识别的与对象存储系统120相关联的带宽指示符420,来限制IO命令被发送到对象存储系统120的速率。
响应于接收到IO命令,对象存储系统120的处理器单元121可将时间戳分配给IO命令,然后将IO命令放置在存储器缓冲器124a至124h之一中。将时间戳分配给IO命令可包括将时间戳添加到与IO命令相关联的记录(例如,命令控制块)。记录可对应于与IO命令相关联的元数据块。在一些示例中,对象存储系统120的处理器单元121在GFID数据库302内查找IO命令中的GFID,并且基于与GFID相关联的数据来确定将IO命令放置在哪个存储器缓冲器中。例如,对象存储系统120的处理器单元121可基于如GFID数据库302中识别的与第一AIPU 112a相关联的带宽(例如,由带宽指示符412指示的带宽),将IO命令放置在第一存储器缓冲器124a内。在一些示例中,对象存储系统120的处理器单元121可维持优先级到带宽范围的映射(例如,第一带宽范围可被映射到第一优先级,第二带宽范围可被映射到第二优先级等)。对象存储系统120的处理器单元121可识别与由IO命令识别的GFID相关联的AI PU的带宽落入的带宽范围,然后将IO命令添加到存储器缓冲器124a至124h中的与映射到带宽范围的优先级对应的存储器缓冲器。
在一些示例中,通过对象存储系统120的处理器单元121分配给IO命令的时间戳基于GFID(例如,基于与GFID相关联的带宽)。例如,对象存储系统120的处理器单元121可在GFID数据库302中查找GFID以识别与同GFID相关联的AI PU相关联的带宽,然后基于带宽分配时间戳。例如,分配的时间戳可对应于IO命令被对象存储系统120接收的时间加上基于带宽选择的偏移。为了说明,对象存储系统120可通过NIC 122接收包括第一GFID的第一IO命令和包括第二GFID的第二IO命令。第一GFID可在GFID数据库302中与第一AI PU 112a相关联,并且第二GFID可在GFID数据库302中与第二AI PU 112b相关联。第一GFID的条目还可指示与第一AI PU 112a相关联的带宽是X,而第二GFID的条目可指示与第二AI PU 112b相关联的带宽是Y。对象存储系统120可(例如,在外部存储器或内部存储器中)维持带宽与偏移之间的关联(例如,映射)。对象存储系统120的处理器单元121可基于X设置第一偏移(例如,+5毫秒(ms)),并且基于Y设置第二偏移(例如,+3ms)。在另一实施方式中,处理器单元121可基于GFID的带宽并且基于与GFID相关联的先前IO命令的先前时间戳(n-1),来分配与GFID相关联的特定IO命令的时间戳(n)。为了说明,处理器单元121可分配时间戳n,使得时间戳n-1与时间戳n之间的时间满足由与GFID相关联的带宽指示的数据速率。在一些实施方式中,处理器单元121分配与GFID相关联的IO命令的时间戳,使得(例如,不管IO命令何时被对象存储系统120接收)GFID的时间戳之间的平均时间满足与GFID相关联的带宽。如下面进一步解释的那样,对象存储装置可被配置为使用时间戳来调度对命令的响应。因此,基于与AI训练会话相关联的GFID来设置IO命令的时间戳可针对AI训练会话提供基于优先级的调度,在AI训练会话中,数据在若干装置之间被交换。该优先级方案可用于确保系统100满足AI训练会话的带宽(例如,AI PU接收数据的速率)和延迟(延迟表示AI PU发送命令的时间与存储装置200发送响应的时间之间的时间差)要求。
对象存储系统120的处理器单元121被配置为通过从存储器缓冲器124a至124h移除IO命令并识别存储装置200a至200d中的哪个存储由IO命令指示的数据(例如,数据块),来处理来自存储器缓冲器124a至124h之一的IO命令。对象存储系统120的处理器单元121被配置为生成针对每个数据块的请求并将请求发送到对应的存储装置。请求包括来自IO命令的GFID、请求的数据块的标识符以及分配给IO命令的时间戳。在IO命令识别出存储(或部分存储)在存储装置中的与GFID数据库302中的GFID不相关联的对象的情况下,对象存储系统120的处理器单元121可(例如,通过NIC 122)将错误消息返回到AI PU。对象存储系统120的处理器单元121可以以基于与存储器缓冲器124a至124h相关联的优先级确定的次序处理来自存储器缓冲器124a至124h的IO命令。此外,在一些实施方式中,对象存储系统120的处理器单元121可基于如由GFID数据库302识别的与存储装置相关联的带宽428,来限制请求被发送到存储装置200a至200d中的特定一个的速率。
存储装置200a至200d(例如,存储装置200a至200d的处理器单元205)可被配置为以基于包括在相关联的请求中的时间戳确定的次序发送数据(例如,数据块)。存储装置200a至200d可通过NIC 201将数据直接发送到请求的AI PU或发送到对象存储系统120。例如,第一存储装置200a可通过第一存储装置200a的NIC 201接收对第一数据块的请求。第一存储装置200a的处理器单元205可基于请求中的时间戳将请求插入到级缓冲器202a至202d之一。例如,可基于时间戳来确定请求被添加到级缓冲器的位置,使得包括在级缓冲器中的请求以时间戳次序被排序。
此外,可由处理器单元205基于与请求中的GFID相关联的带宽(例如,带宽428)来选择请求被插入的级缓冲器。请求可从级缓冲器被处理(例如,以基于级缓冲器的优先级的次序)并被发送到总线206,以被存储所请求的数据(例如,数据块)的驱动器(例如,驱动器208a至208d之一)接收。
驱动器可将数据返回到总线206,以由存储装置200通过NIC 201输出到与GFID相关联的AI PU。例如,处理器单元205可通过NIC 201启动对GFID数据库302的查询的传输,以识别哪个AI PU与该请求相关联,然后通过NIC 201启动由驱动器输出的数据到该AI PU的传输。在一些实施方式中,存储装置200将数据(例如,数据块)发送到对象存储系统120,用于转发到AI PU。
在一些实施方式中,处理器单元205将数据添加到与缓冲输出相关联的级缓冲器202a至202d之一。可基于与请求相关联的GFID和/或时间戳将数据添加到级缓冲器。此外,在一些实施方式中,处理器单元205可基于如由GFID数据库302识别的与AI PU相关联的带宽指示符412来限制数据被返回到AI PU的速率。
因为存储装置以时间戳次序处理请求和输出数据,所以可以以同步方式获取对象。此外,可基于与识别AI训练会话的GFID对应的优先级(例如,带宽)来分配时间戳。因此,AI训练会话可被优先化。此外,可基于链接到AI训练会话的GFID的带宽来管理AI训练会话内的组件之间的数据速率。
参照图5,展示了示出生成用于AI训练会话的存储查询计划的方法500的流程图。方法500可由图1的AI主机装置102执行。
方法包括在502读取下一存储服务会话参数。例如,AI主机装置102可(例如,从输入文件或其他源)读取与AI训练会话相关联的参数(例如,工作负载参数)。这些参数可包括AI训练会话的目标带宽、数据集、训练时间、每个GPU的带宽、将要读取的对象/数据、GPU的数量、预获取缓冲器的大小、其他参数或它们的组合。参数可由数据加载器110输入。
方法500还包括在504读取系统和网络拓扑信息。例如,AI主机装置102可确定图3中示出的系统的网络拓扑。AI主机装置102可使用互联网控制消息协议(ICMP)、链路层发现协议(LLDP)、另外的工具或它们的组合来确定网络拓扑。确定网络拓扑信息还可包括确定在网络中的各种装置处可用的带宽。例如,AI主机装置102可确定存储装置200的可用带宽、对象存储系统120的可用带宽、AI PU 112a至112h的可用带宽或它们的组合。
方法500还包括在506读取存储容量信息。例如,AI主机装置102可查询存储装置200a至200d、对象存储系统120或它们的组合,以确定可用于AI训练会话的存储容量。
方法500还包括在508分析网络拓扑信息和存储容量信息,创建存储队列计划(storage query plan,SQP),并生成将GFID与同AI训练会话相关联的资源相关联的全局流数据库条目。
响应于在510确定拓扑和存储容量不支持存储系统参数,方法500包括在502读取下一存储服务会话参数。
响应于在510确定拓扑和存储容量确实支持存储系统参数,方法500包括在512分发全局流数据库条目。例如,AI主机装置102可将数据库条目分发到GFID数据库302。
方法500还包括在514设置和初始化存储查询和相关的流。例如,AI主机装置102可初始化与对象存储系统120的连接。该连接可具有由存储在GFID数据库302中的条目指示的带宽。AI主机装置102还可初始化与由GFID数据库条目识别的一个或多个存储装置的连接。
方法500还包括在516启动应用。例如,AI主机装置102可启动AI应用108并开始将IO命令发送到对象存储系统120作为AI训练会话的一部分。
参照图6,展示了示出将时间同步请求发送到存储装置的方法600的流程图。方法600可由对象存储系统(诸如,对象存储系统120)或由另外的类型的存储系统执行。
方法600包括在606从第一AI PU接收第一输入/输出(IO)命令,第一IO命令与第一AI模型训练操作相关联。例如,对象存储系统120可通过NIC 122从第一AI PU 112a接收第一IO命令。第一IO命令可包括与由第一AI PU 112a执行的第一AI训练会话相关联的第一GFID。例如,第一GFID识别第一AI模型训练操作。
方法600还包括在608从第二AI PU接收第二IO命令,第二IO命令与第二AI模型训练操作相关联。例如,对象存储系统120可通过NIC 122从第二AI PU 112b接收第二IO命令。第二IO命令可包括与由第二AI PU 112b执行的第二AI训练会话相关联的第二GFID。例如,第二GFID识别第二AI模型训练操作。
方法600还包括在610基于分配给第一AI模型训练操作的第一带宽,将第一时间戳分配给第一IO命令。例如,对象存储系统120的处理器单元121可查询GFID数据库302以确定与包括在第一IO命令中的GFID相关联的第一带宽指示符412。对象存储系统120的处理器单元121可基于第一带宽指示符412指示的第一带宽将第一时间戳分配给第一IO命令。在一些示例中,第一时间戳对应于在对象存储系统120处接收到第一IO命令的时间加上基于第一带宽确定的偏移。
方法600还包括在612基于分配给第二AI模型训练操作的第二带宽,将第二时间戳分配给第二IO命令。例如,对象存储系统120可查询GFID数据库302以确定与包括在第二IO命令中的GFID相关联的第二带宽指示符412。对象存储系统120的处理器单元121可基于第二带宽指示符412指示的第二带宽将第二时间戳分配给第二IO命令。在一些示例中,第二时间戳对应于在对象存储系统120处接收到第二IO命令的时间加上基于第二带宽确定的偏移。
由对象存储系统120基于IO命令发送的数据请求可包括分配给IO命令的时间戳。接收数据请求的存储装置可以以基于时间戳确定的次序输出数据。因此,数据可由存储装置以时间同步方式输出。
参照图7,展示了示出以时间同步方式从存储装置发送数据的方法700的流程图。
方法700包括在702接收对第一数据块的第一请求。第一请求包括第一时间戳和第一全局流标识符(GFID)。例如,第一存储装置200a可通过NIC 201从对象存储系统120接收第一请求。第一请求可请求第一数据块,第一请求可包括第一时间戳并可包括第一GFID。
方法700还包括在704接收对第二数据块的第二请求,第二请求包括第二时间戳和第二GFID。例如,第一存储装置200a可通过NIC 201从对象存储系统120接收第二请求。第二请求可请求第二数据块,第二请求可包括第二时间戳并可包括第二GFID。
方法700还包括在706基于第一GFID识别第一AI PU。例如,第一存储装置200a的处理器单元205可通过NIC 201查询GFID数据库302,以确定第一AI PU 112a与第一GFID相关联。
方法700还包括在708基于第二GFID识别第二AI模型处理单元。例如,第一存储装置200a的处理器单元205可通过NIC 201查询GFID数据库302,以确定第二AI PU 112b与第二GFID相关联。
方法700还包括在710将第一数据块发送到第一AI PU,其中,第一数据块的发送的时序基于第一时间戳。例如,第一存储装置200a的处理器单元205可通过NIC 201启动第一数据块到第一AI PU 112a的发送。第一存储装置200a的处理器单元205可基于第一时间戳调度来自级缓冲器202a至202d之一的第一请求的处理和/或调度第一数据块到第一AI PU112a的发送。在一些实施方式中,第一存储装置200a的处理器单元205等待直到由第一时间戳指示的时间,以将第一数据块发送到第一AI PU 112a。
方法700还包括在712将第二数据块发送到第二AI模型处理单元,其中,第二数据块的发送的时序基于第二时间戳。例如,第一存储装置200a的处理器单元205可通过NIC201启动第二数据块到第二AI PU 112b的发送。第一存储装置200a的处理器单元205可基于第二时间戳调度来自级缓冲器202a至202d之一的第二请求的处理和/或调度第二数据块到第二AI PU 112b的传输。在一些实施方式中,第一存储装置200a的处理器单元205等待直到由第二时间戳指示的时间,以将第二数据块发送到第二AI PU 112b。
因此,方法700可由存储装置用来以时间同步方式发送数据块。由于存储装置用于同步发送的时间戳可基于AI训练会话优先级,因此数据的发送可考虑AI训练会话的相对优先级。
参照图8,展示了示出第一AI PU 112a发送用于特定AI训练会话的三个IO命令的示例的序列图800。序列图示出第一存储装置200a至第n存储装置200n。如上所述,图3的系统可包括与示出的四个存储装置不同数量的存储装置。
在802,序列包括第一AI PU 112a连接到对象存储系统120。第一AI PU 112a可响应于确定已经针对AI训练会话成功建立了存储查询计划并且该存储查询计划将对象存储系统120分配给AI训练会话,而启动该连接。在示出的示例中,AI训练会话具有“ABC”的GFID。在一个示例中,作为GFID的“ABC”可以是100。因此,GFID数据库302存储将GFID“ABC”与对象存储系统120相关联的GFID数据库条目。
在804,序列包括第一AI PU 112a连接到第一存储装置200a。第一AI PU 112a可响应于确定存储查询计划将第一存储装置200a分配给AI训练会话,而启动该连接。GFID数据库条目将GFID“ABC”与第一存储装置200a相关联。
在806,序列包括第一AI PU 112a连接到第二存储装置200b。第一AI PU 112a可响应于确定存储查询计划将第二存储装置200b分配给AI训练会话,而启动该连接。GFID数据库条目将GFID“ABC”与第二存储装置200b相关联。
在808,序列包括第一AI PU 112a连接到第n存储装置200n。第一AI PU 112a可响应于确定存储查询计划将第n存储装置200n分配给AI训练会话,而启动该连接。GFID数据库条目将GFID“ABC”与第n存储装置200n相关联。
序列800还包括AI PU 112a在810将第一IO命令发送到对象存储系统120,在812将第二IO命令发送到对象存储系统120,以及在814将第三IO命令发送到对象存储系统120。在示出的示例中,第一IO命令、第二IO命令以及第三IO命令是获得(GET)命令。在图8中,第一IO命令、第二IO命令以及第三IO命令分别由S3 GET Cmd TS0、S3 GET Cmd TS1以及S3 GETCmd TS2表示。第一IO命令(例如,通过键值)识别第一数据对象,第二IO命令识别第二数据对象,第三IO命令识别第三数据对象。对象存储系统120将第一时间戳分配给第一IO命令,将第二时间戳分配给第二IO命令,将第三时间戳分配给第三IO命令。基于GFID数据库302中的与GFID“ABC”相关联的优先级(例如,带宽)生成时间戳。
对于每个命令,对象存储系统120随后生成对与由IO命令识别的对象相关联的数据块的请求。请求包括分配给IO命令的时间戳,并且请求由对象存储系统120发送到在GFID数据库302中识别为与GFID“ABC”相关联的存储装置。
在图8所示的示例中,对象存储系统120基于第一IO命令生成对数据块的第一请求、对数据块的第二请求和对数据块的第三请求(例如,EC-0TS0、EC-1TS0和EC-N TS0)。这些请求中的每个包括分配给第一IO命令的第一时间戳。对象存储系统120还基于第二IO命令生成对数据块的第四请求、对数据块的第五请求和对数据块的第六请求(例如,EC-0TS1、EC-1TS1和EC-N TS1)。这些请求中的每个包括分配给第二IO命令的第二时间戳。对象存储系统120还基于第三IO命令生成对数据块的第七请求、对数据块的第八请求和对数据块的第九请求(例如,EC-0TS2、EC-1TS2和EC-N TS2)。这些请求中的每个包括分配给第三IO命令的第三时间戳。
在序列图800中,对象存储系统120在816将第一请求发送到第一存储装置200a,在818将第七请求发送到第一存储装置200a,在820将第八请求发送到第二存储装置200b,在822将第四请求发送到第一存储装置200a,在824将第二请求发送到第二存储装置200b,在826将第三请求发送到第n存储装置200n,在828将第九请求发送到第n存储装置200n,在830将第五请求发送到第二存储装置200b,在832将第六请求发送到第n存储装置200n。因此,请求可由对象存储系统120无序地发送(并由存储装置200a至200n接收)。
存储装置200a至200n被配置为以基于包括在请求中的时间戳确定的次序输出数据块。例如,第一存储装置200a可接收第一请求、第四请求和第七请求,按基于各自的时间戳的顺序(这可与对应请求被接收的顺序不同)将第一请求、第四请求和第七请求插入第一级缓冲器202a中,然后以基于顺序的次序处理来自第一级缓冲器202a的请求。另外或可选地,第一存储装置200a可按基于时间戳的顺序将与第一请求相关联的数据块、与第四请求相关联的数据块和与第七请求相关联的数据块插入第二级缓冲器202b中,然后以基于顺序的次序发送来自第二级缓冲器202b的数据块。在一些实施方式中,数据块在由与数据块相关联的时间戳指示的时间(或大约在由与数据块相关联的时间戳指示的时间(例如,在3ms内))从级缓冲器202b被移除并被发送到第一AI PU 112a。
因此,在示出的序列800中,在834,将响应于第一请求的数据块(例如,‘EC-0TS0’)输出到第一AI PU 112a,在836,将与第二请求相关联的数据块(例如,‘EC-1TS0’)输出到第一AI PU 112a,在838,将与第三请求相关联的数据块(例如,‘EC-N TS0’)输出到第一AI PU112a,在840,将与第四请求相关联的数据块(例如,‘EC-0TS1’)输出到第一AI PU 112a,在842,将与第五请求相关联的数据块(例如,‘EC-1TS1’)输出到第一AI PU 112a,在844,将与第六请求相关联的数据块(例如,‘EC-N TS1’)输出到第一AI PU 112a,在846,将与第七请求相关联的数据块(例如,‘EC-0TS2’)输出到第一AI PU 112a,在848,将与第八请求相关联的数据块(例如,‘EC-1TS2’)输出到第一AI PU 112a,在850,将与第九请求相关联的数据块(例如,‘EC-N TS2’)输出到第一AI PU 112a。应当注意,除了确定返回数据的顺序之外,由对象存储系统120设置的时间戳还确定将数据递送到AI PU的速率。因此,返回到第一AI PU112a的数据块可时间同步并以适当的速率递送。在一个示例中,与第一请求相关联的数据块对应于第一IO命令请求的数据对象的第一擦除编码块,并且与第二请求相关联的数据块对应于数据对象的第二擦除编码块。
在示出的示例中,对象存储系统120在852将第一完成通知(例如,S3 CompletionTS0)发送到第一AI PU 112a,在854将第二完成通知(例如,S3 Completion TS1)发送到第一AI PU 112a,在856将第三完成通知(例如,S3 Completion TS2)发送到第一AI PU 112a。完成通知可基于与时间戳相关联的时间被发送。例如,第一完成通知可由对象存储系统120在由第一时间戳指示的时间发送。因此,可通知第一AI PU 112a应该已经发送了与第一IO命令相关联的所有数据块。
上述示例描述了一个AI主机装置与一个对象存储系统交互的实施方式。然而,系统可包括多于一个AI主机装置和多于一个对象存储系统。多于一个AI主机装置可与对象存储系统交互。此外,AI主机装置可与多于一个对象存储系统交互。图9中示出包括多个AI主机装置和多个对象存储系统的示例系统。图9的系统的组成和操作可类似于上面参照图1至图8描述的系统和操作。
前述内容是示例实施例的说明,并且不应被解释为对其进行限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在实质上不脱离示例实施例的新颖性教导和优点的情况下,在示例实施例中进行许多修改是可行的。因此,所有这样的修改意在被包括在如权利要求中限定的示例实施例的范围内。在权利要求中,装置加功能条款意在覆盖在此描述的执行所述功能的结构,并且不仅覆盖结构等同物,而且覆盖等同结构。因此,应当理解,前述内容是示例实施例的说明,并且不应被解释为限于公开的特定实施例,并且对公开的示例实施例的修改以及其他示例实施例意在包括在所附权利要求的范围内。
在此使用的术语仅用于描述特定实施例的目的,并不意在限制本公开。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包含”、“具有”和“包括”时,表明存在陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“和/或”包括相关所列项中的一个或多个的任何组合和所有组合。
如在此使用的,在描述本公开的实施例时“可”的使用表示“本公开的一个或多个实施例”。如在此使用的,术语“使用”、“正在使用”和“被使用”可被认分别为与术语“利用”、“正在利用”和“被利用”同义。此外,术语“示例性”意在表示示例或说明。
当可以不同地实施特定实施例时,可与描述的次序不同地执行特定的处理次序。例如,两个连续描述的处理或方法步骤可基本上同时执行或者以与描述的次序不同的次序执行。
根据在此描述的本公开的实施例的电子或电气装置和/或任何其他相关装置或组件可利用任何合适的硬件、固件(例如,专用集成电路)、软件或软件、固件和硬件的组合来实现。例如,这些装置的各种组件可形成在一个集成电路(IC)芯片上或单独的IC芯片上。此外,这些装置的各种组件可实现在柔性印刷电路膜、带载封装(TCP)、印刷电路板(PCB)上,或者形成在一个基底上。此外,这些装置的各种组件可以是在一个或多个计算装置中的一个或多个处理器上运行的执行计算机程序指令并与其他系统组件交互以用于执行在此描述的各种功能的进程或线程。计算机程序指令存储在存储器中,存储器可使用标准存储器装置(诸如,以随机存取存储器(RAM)为例)实现在计算装置中。计算机程序指令还可存储在其他非暂时性计算机可读介质(诸如,以CD-ROM、闪存驱动器等为例)。此外,本领域技术人员应当认识到,在不脱离本公开的示例性实施例的精神和范围的情况下,各种计算装置的功能可组合或集成到单个计算装置中,或者特定计算装置的功能可分布在一个或多个其他计算装置上。
除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域和/或本说明书的上下文中的含义一致的含义,并且不应以理想化或过于形式化的含义进行解释。
Claims (26)
1.一种用于时间同步存储递送的方法,包括:
在第一计算装置从第一人工智能模型处理单元接收第一输入/输出命令,第一输入/输出命令与第一人工智能模型训练操作相关联;
在第一计算装置从第二人工智能模型处理单元接收第二输入/输出命令,第二输入/输出命令与第二人工智能模型训练操作相关联;
基于分配给第一人工智能模型训练操作的第一带宽,将第一时间戳分配给第一输入/输出命令;以及
基于分配给第二人工智能模型训练操作的第二带宽,将第二时间戳分配给第二输入/输出命令。
2.根据权利要求1所述的方法,其中,第一输入/输出命令包括识别第一人工智能模型训练操作的第一全局流标识符GFID,并且第二输入/输出命令包括识别第二人工智能模型训练操作的第二GFID,其中,所述方法还包括:
基于第一GFID从数据库检索与第一人工智能模型处理单元相关联的第一带宽的指示;以及
基于第二GFID从数据库检索与第二人工智能模型处理单元相关联的第二带宽的指示。
3.根据权利要求1或2所述的方法,还包括:基于第一输入/输出命令,将对第一数据块的第一请求发送到第一存储装置,第一请求包括第一时间戳。
4.根据权利要求3所述的方法,还包括:基于第一输入/输出命令,将对第二数据块的第二请求发送到第二存储装置,第二请求包括第一时间戳。
5.根据权利要求4所述的方法,还包括:基于第二输入/输出命令,将对第三数据块的第三请求发送到第三存储装置,第三请求包括第二时间戳。
6.根据权利要求4所述的方法,其中,第一输入/输出命令请求数据对象,并且其中,第一数据块对应于数据对象的第一擦除编码块,并且第二数据块对应于数据对象的第二擦除编码块。
7.根据权利要求3所述的方法,其中,第一存储装置对应于通过网络架构的非易失性存储器快速NVMe-oF目标。
8.一种用于时间同步存储递送的方法,包括:
在存储装置接收对第一数据块的第一请求,第一请求包括第一时间戳和第一全局流标识符GFID;
在存储装置接收对第二数据块的第二请求,第二请求包括第二时间戳和第二GFID;
在存储装置基于第一GFID识别第一人工智能模型处理单元;
在存储装置基于第二GFID识别第二人工智能模型处理单元;
将第一数据块从存储装置发送到第一人工智能模型处理单元,其中,第一数据块的发送的时序基于第一时间戳;以及
将第二数据块从存储装置发送到第二人工智能模型处理单元,其中,第二数据块的发送的时序基于第二时间戳。
9.根据权利要求8所述的方法,其中,存储装置包括通过网络架构的非易失性存储器快速NVMe-oF目标,其中,NVMe-oF目标包括多个固态驱动器。
10.根据权利要求8所述的方法,其中,第一人工智能模型处理单元包括图形处理器。
11.根据权利要求8所述的方法,其中,第一人工智能模型处理单元包括在处理器上执行的应用。
12.根据权利要求8所述的方法,其中,第一数据块对应于数据对象的擦除编码块。
13.根据权利要求8所述的方法,其中,响应于第一时间戳在第二时间戳之前,第一数据块在第二数据块之前被发送。
14.根据权利要求8至13中的任一项所述的方法,其中,识别第一人工智能模型处理单元的步骤包括将识别第一GFID的查询发送到GFID数据库。
15.一种计算装置,包括:
网络接口;以及
处理器单元,被配置为:
从第一人工智能模型处理单元接收第一输入/输出命令,第一输入/输出命令与第一人工智能模型训练操作相关联;
从第二人工智能模型处理单元接收第二输入/输出命令,第二输入/输出命令与第二人工智能模型训练操作相关联;
基于分配给第一人工智能模型训练操作的第一带宽,将第一时间戳分配给第一输入/输出命令;以及
基于分配给第二人工智能模型训练操作的第二带宽,将第二时间戳分配给第二输入/输出命令。
16.根据权利要求15所述的计算装置,其中,第一输入/输出命令包括识别第一人工智能模型训练操作的第一全局流标识符GFID,并且第二输入/输出命令包括识别第二人工智能模型训练操作的第二GFID,其中,处理器单元还被配置为:
基于第一GFID从数据库检索与第一人工智能模型处理单元相关联的第一带宽的指示;以及
基于第二GFID从数据库检索与第二人工智能模型处理单元相关联的第二带宽的指示。
17.根据权利要求15或16所述的计算装置,其中,处理器单元还被配置为:基于第一输入/输出命令,启动通过网络接口的对第一数据块的第一请求到第一存储装置的发送,第一请求包括第一时间戳。
18.根据权利要求17所述的计算装置,其中,处理器单元还被配置为:基于第一输入/输出命令,启动通过网络接口的对第二数据块的第二请求到第二存储装置的发送,第二请求包括第一时间戳。
19.根据权利要求18所述的计算装置,其中,处理器单元还被配置为:基于第二输入/输出命令,启动通过网络接口的对第三数据块的第三请求到第三存储装置的发送,第三请求包括第二时间戳。
20.根据权利要求18所述的计算装置,其中,第一输入/输出命令请求数据对象,并且其中,第一数据块对应于数据对象的第一擦除编码块,并且第二数据块对应于数据对象的第二擦除编码块。
21.根据权利要求17所述的计算装置,其中,第一存储装置对应于通过网络架构的非易失性存储器快速NVMe-oF目标。
22.一种存储装置,包括:
网络接口;以及
处理器单元,被配置为:
接收对第一数据块的第一请求,第一请求包括第一时间戳和第一全局流标识符GFID;
接收对第二数据块的第二请求,第二请求包括第二时间戳和第二GFID;
基于第一GFID识别第一人工智能模型处理单元;
基于第二GFID识别第二人工智能模型处理单元;
启动通过网络接口的第一数据块到第一人工智能模型处理单元的发送,其中,第一数据块的发送的时序基于第一时间戳;以及
启动通过网络接口的第二数据块到第二人工智能模型处理单元的发送,其中,第二数据块的发送的时序基于第二时间戳。
23.根据权利要求22所述的存储装置,其中,存储装置包括通过网络架构的非易失性存储器快速NVMe-oF目标,NVMe-oF目标包括多个固态驱动器。
24.根据权利要求22所述的存储装置,其中,第一数据块对应于数据对象的擦除编码块。
25.根据权利要求22所述的存储装置,其中,响应于第一时间戳在第二时间戳之前,第一数据块在第二数据块之前被发送。
26.根据权利要求22至25中的任一项所述的存储装置,其中,识别第一人工智能模型处理单元的步骤包括将识别第一GFID的查询发送到GFID数据库。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063051883P | 2020-07-14 | 2020-07-14 | |
US63/051,883 | 2020-07-14 | ||
US17/154,444 US11609869B2 (en) | 2020-07-14 | 2021-01-21 | Systems, methods, and devices for time synchronized storage delivery |
US17/154,444 | 2021-01-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934659A true CN113934659A (zh) | 2022-01-14 |
Family
ID=79274345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110760219.1A Pending CN113934659A (zh) | 2020-07-14 | 2021-07-06 | 用于时间同步存储递送的系统、方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11609869B2 (zh) |
JP (1) | JP2022018106A (zh) |
KR (1) | KR20220008754A (zh) |
CN (1) | CN113934659A (zh) |
TW (1) | TW202203095A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11609869B2 (en) * | 2020-07-14 | 2023-03-21 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for time synchronized storage delivery |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016067388A1 (ja) | 2014-10-29 | 2016-05-06 | 株式会社日立製作所 | ストレージ装置およびストレージシステム |
US9825652B1 (en) | 2015-06-17 | 2017-11-21 | Amazon Technologies, Inc. | Inter-facility network traffic optimization for redundancy coded data storage systems |
US10585749B2 (en) | 2017-08-10 | 2020-03-10 | Samsung Electronics Co., Ltd. | System and method for distributed erasure coding |
WO2019118356A1 (en) | 2017-12-11 | 2019-06-20 | Fungible, Inc. | Durable block storage in data center access nodes with inline erasure coding |
US11586463B2 (en) * | 2018-04-17 | 2023-02-21 | Oracle International Corporation | Automated process flow learning |
US10782986B2 (en) * | 2018-04-20 | 2020-09-22 | Facebook, Inc. | Assisting users with personalized and contextual communication content |
US11610137B1 (en) * | 2018-08-23 | 2023-03-21 | RKT Holdings, LLC | Cognitive computing using a plurality of model structures |
US11374944B2 (en) * | 2018-12-19 | 2022-06-28 | Cisco Technology, Inc. | Instant network threat detection system |
US20200167258A1 (en) * | 2020-01-28 | 2020-05-28 | Intel Corporation | Resource allocation based on applicable service level agreement |
US11609869B2 (en) * | 2020-07-14 | 2023-03-21 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for time synchronized storage delivery |
-
2021
- 2021-01-21 US US17/154,444 patent/US11609869B2/en active Active
- 2021-05-18 TW TW110117874A patent/TW202203095A/zh unknown
- 2021-06-10 KR KR1020210075591A patent/KR20220008754A/ko not_active Application Discontinuation
- 2021-07-06 CN CN202110760219.1A patent/CN113934659A/zh active Pending
- 2021-07-13 JP JP2021115542A patent/JP2022018106A/ja active Pending
-
2023
- 2023-03-20 US US18/123,866 patent/US11914529B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220019546A1 (en) | 2022-01-20 |
US20230229605A1 (en) | 2023-07-20 |
JP2022018106A (ja) | 2022-01-26 |
TW202203095A (zh) | 2022-01-16 |
KR20220008754A (ko) | 2022-01-21 |
US11914529B2 (en) | 2024-02-27 |
US11609869B2 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI280006B (en) | Method, system, and program for interfacing with a network adaptor supporting a plurality of devices | |
CN106688208B (zh) | 利用机架规模架构中的池化存储器进行的网络通信 | |
US7716336B2 (en) | Resource reservation for massively parallel processing systems | |
TWI547870B (zh) | 用於在多節點環境中對i/o 存取排序的方法和系統 | |
US10474606B2 (en) | Management controller including virtual USB host controller | |
KR102523419B1 (ko) | 저장 장치에서 가속 커널들의 상태 모니터링 방법 및 이를 사용하는 저장 장치 | |
TW201543218A (zh) | 具有多節點連接的多核網路處理器互連之晶片元件與方法 | |
US8280197B1 (en) | Managed background loading of image resources in resource-constrained devices | |
US7702879B2 (en) | Assigning alias addresses to base addresses | |
US20070067151A1 (en) | Memory access to virtual target device | |
JP2017076357A (ja) | Ufs装置の作動方法、ufsホストの作動方法、及びそれらを含むシステムの作動方法 | |
CN113127139B (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
US11914529B2 (en) | Systems, methods, and devices for time synchronized storage delivery | |
CN1581853A (zh) | 用于处理要在网络上发送的分组的方法、系统和程序 | |
CN114691037A (zh) | 卸载卡命名空间管理、输入输出请求处理系统和方法 | |
US10592113B2 (en) | Method for transferring command from host to device controller and system using the same | |
US20180048732A1 (en) | Techniques for storing or accessing a key-value item | |
JP7147065B2 (ja) | 通信ネットワークを介して接続された複数の電子デバイスが例外を正しく処理するか否かの同時試験 | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
US9665519B2 (en) | Using a credits available value in determining whether to issue a PPI allocation request to a packet engine | |
CN114268654B (zh) | 网络通信方法、装置、设备、存储介质和程序产品 | |
KR20050080704A (ko) | 프로세서간 데이터 전송 장치 및 방법 | |
US9936003B1 (en) | Method and system for transmitting information in a network | |
CN112597080A (zh) | 读请求控制装置及方法以及存储器控制器 | |
US20240069755A1 (en) | Computer system, memory expansion device and method for use in computer system |
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 |