TW202203095A - 時間同步儲存輸送的方法、計算元件以及儲存元件 - Google Patents

時間同步儲存輸送的方法、計算元件以及儲存元件 Download PDF

Info

Publication number
TW202203095A
TW202203095A TW110117874A TW110117874A TW202203095A TW 202203095 A TW202203095 A TW 202203095A TW 110117874 A TW110117874 A TW 110117874A TW 110117874 A TW110117874 A TW 110117874A TW 202203095 A TW202203095 A TW 202203095A
Authority
TW
Taiwan
Prior art keywords
data
chunk
artificial intelligence
timestamp
intelligence model
Prior art date
Application number
TW110117874A
Other languages
English (en)
Inventor
羅納德 C 李
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202203095A publication Critical patent/TW202203095A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller

Abstract

一種方法包括:在第一計算元件處自第一人工智慧處理單元(AI PU)接收第一輸入/輸出(IO)命令,所述第一IO命令與第一AI模型訓練操作相關聯。所述方法更包括:在第一計算元件處自第二AI PU接收第二IO命令,所述第二IO命令與第二AI模型訓練操作相關聯。所述方法更包括:基於被指配給第一AI模型訓練操作的第一頻寬將第一時間戳指配給第一IO命令。所述方法更包括:基於被指配給第二AI模型訓練操作的第二頻寬將第二時間戳指配給第二IO命令。

Description

時間同步儲存輸送之系統、方法以及元件
本說明是有關於人工智慧(Artificial Intelligence,AI)技術,且更具體而言是有關於實行時間同步儲存輸送之儲存系統以及方法。 [優先權]
本申請案主張優先於在2020年7月14日提出申請的美國臨時專利申請案63/051,883,所述美國臨時專利申請案的內容全文以引用的方式併入本案。
人工智慧(AI)模型(例如,可變自編碼器(variational auto-encoder))是使用大的資料集進行訓練。AI系統可包括數千個圖形處理單元(graphics processing unit,GPU),所述GPU被配置成並行處理所述大的資料集,以適當地訓練一或多個AI模型。
揭露實行時間同步儲存輸送之儲存系統以及方法。該些系統及方法可用於支援在人工智慧模型的訓練期間處理大的資料集。
一種方法包括:在第一計算元件處自第一人工智慧處理單元(artificial intelligence processing unit,AI PU)接收第一輸入/輸出(input/output,IO)命令,所述第一IO命令與第一AI模型訓練操作相關聯。所述方法更包括:在所述第一計算元件處自第二AI PU接收第二IO命令,所述第二IO命令與第二AI模型訓練操作相關聯。所述方法更包括:基於被指配給所述第一AI模型訓練操作的第一頻寬將第一時間戳指配給所述第一IO命令。所述方法更包括:基於被指配給所述第二AI模型訓練操作的第二頻寬將第二時間戳指配給所述第二IO命令。
一種方法包括:在儲存元件處接收對第一資料組塊的第一請求,所述第一請求包括第一時間戳及第一全域流量辨識符(global flow identifier,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模型處理單元。所述處理器單元更被配置成:啟動將所述第一資料組塊經由所述網絡介面傳輸至所述第一AI模型處理單元,其中所述第一資料組塊的傳輸的定時是基於所述第一時間戳。所述處理器單元更被配置成:啟動將所述第二資料組塊經由所述網絡介面傳輸至所述第二AI模型處理單元,其中所述第二資料組塊的傳輸的定時是基於所述第二時間戳。
參照圖1,示出用於時間同步儲存輸送的系統100的圖。系統100包括人工智慧(AI)主機元件102。AI主機元件102可對應於一或多個計算元件。AI主機元件102包括AI應用108及資料載入器(data loader)110。AI應用108及資料載入器110可對應於可由AI主機元件102的處理器(未示出)執行的軟體。AI主機元件102更包括網路介面控制器(network interface controller,NIC)104、動態隨機存取記憶體(dynamic random access memory,DRAM)106及多個AI模型處理單元(AI PU)112a至112h。NIC 104可對應於無線NIC或有線NIC。所述多個AI PU包括第一AI PU 112a、第二AI PU 112b、第三AI PU 112c、第四AI PU 112d、第五AI PU 112e、第六AI PU 112f、第七AI PU 112g及第八AI PU 112h。在此示例性實施例中示出8個AI PU 112a至112h,但可使用任意數目。所述多個AI PU 112a至112h可包括一或多個圖形處理器單元(graphics processor unit,GPU)、可由處理器執行的一或多個應用、現場可程式化閘陣列(field programmable gate array,FPGA)、特殊應用積體電路(application specific integrated circuit,ASIC)、中央處理器單元(central processor unit,CPU)、另一處理組件或其組合。在一些實例中,AI PU 112a至112h可被配置成處理與AI操作相關聯的工作量(workload)。在一些實例中,工作量可包括矩陣乘法及/或卷積密集型運算。AI主機元件102可對應於實體元件或虛擬元件(例如,由雲端計算系統實施)。
在一些實施方案中,AI主機元件102可與圖1中所例示的實例進行不同地配置。舉例而言,可使用不同類型的記憶體單元(例如,靜態隨機存取記憶體(static random access memory)SRAM等)替換DRAM 106。作為另一實例,可使用不同類型的網路配接器替換NIC 104。作為另一實例,AI主機元件102可包括與所例示的數目不同數目的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的單獨網路配接器來維護所述連接。所述連接可為直接連接或者可經由公用網路(例如,網際網路(Internet))、私用網路或其組合進行。AI PU 112a至112h被配置成將輸入/輸出(IO)命令經由所述連接發送至物件儲存系統120。舉例而言,第一AI PU 112a可將請求第一資料物件的第一IO命令發送至物件儲存系統120。AI PU被配置成基於所擷取的資料物件來訓練一或多個AI資料模型。舉例而言,因應於接收到第一資料物件,第一AI PU 112a可訓練AI模型(或AI模型的一部分)並將經訓練模型(或經訓練模型的一部分)返送至AI應用108。
物件儲存系統120的處理器單元121被配置成基於所接收的IO命令中所包括的全域流量辨識符(GFID)而在記憶體緩衝器124a至124h中對所接收的命令進行緩衝,如本文中進一步所闡述。物件儲存系統120的處理器單元121被配置成基於記憶體緩衝器124a至124h的優先權來擷取IO命令並啟動相關聯的資料操作。舉例而言,基於第一記憶體緩衝器124a及第二記憶體緩衝器124b的相對優先權等級,相較於第二記憶體緩衝器124b,物件儲存系統120的處理器單元121可更頻繁地自第一記憶體緩衝器124a擷取IO命令。
物件儲存系統120的處理器單元121管理資料物件126a、126b。在圖1中標記第一資料物件126a及第二資料物件126b。所接收的IO命令可辨識資料物件(例如,藉由鍵值)。物件儲存系統120的處理器單元121可被配置成啟動二或更多個資料物件至一或多個AI PU的時間同步傳送,如本文中進一步所闡述。由物件儲存系統120管理的資料物件126可儲存於一或多個儲存元件中。該些儲存元件可經由NIC 122連接至物件儲存系統120。因此,啟動資料物件的傳送可包括向儲存元件發送將物件(或物件的一部分)傳送至物件儲存系統120或傳送至發出請求的AI PU的請求。
在一些實施方案中,物件儲存系統120的處理器單元121被配置成實施資料抹除編碼方案。物件儲存系統120的處理器單元121可對資料物件實行資料抹除編碼方案,以產生一或多個抹除編碼(erasure coded,EC)組塊並將EC組塊儲存於一或多個儲存元件上。因應於涉及資料物件的IO命令,物件儲存系統120的處理器單元121可被配置成確定哪個儲存元件或哪些儲存元件儲存資料物件的EC組塊並向那些儲存元件發出IO請求。
在一些實施方案中,儲存元件包括快速非揮發性記憶體(non-volatile memory express,NVMe)元件、架構上的NVMe(NVMe over fabric,NVMe-oF)目標、其他儲存元件或其組合。
圖2繪示出儲存元件200(例如,NVMe-oF目標)的實例,儲存元件200可儲存一或多個資料物件的EC編碼組塊。儲存元件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至208b擷取的資料(例如,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對儲存於分段緩衝器202a至202d中的IO請求進行處理。相似地,在其中分段緩衝器中的一或多者被配置成自驅動機208a至208d接收資料的實施方案中,處理器單元205可基於與和特定資料(例如,特定組塊)的擷取相關聯的IO請求相關聯的GFID將特定資料指配給分段緩衝器中的特定一者,如本文中進一步所闡述。如上所述,分段緩衝器202a至202d可具有相關聯的優先權等級。可以基於優先權等級確定的次序自分段緩衝器202a至202d發送儲存於分段緩衝器202a至202d中的資料(例如,發送至物件儲存系統120或發送至AI PU 112a至112h中的一或多者)。
儲存元件200更包括匯流排206。匯流排206可包括快速周邊組件互連(peripheral component interconnect express,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。儲存元件200a至200d中的每一者是圖2中所例示的儲存元件200的實例。應注意,儘管儲存元件200a至200d是儲存元件200的實例,然而儲存元件200a至200d可不相同。舉例而言,如上所述,儲存元件200可具有不同的配置(例如,分段緩衝器的不同數目或利用率等),且第一儲存元件200a可具有該些配置中的一者,而第二儲存元件200b具有該些配置中的第二者。
此外,物件儲存系統120、AI UP 112a至112h及儲存元件200a至200d連接至GFID資料庫302(例如,分別連接至NIC 122及NIC 201)。GFID資料庫302在計算元件上實施。在一些實例中,GFID資料庫302在圖1所示AI主機元件102上實施(例如,在AI主機元件102的AI PU 112a至112h中的一者或另一處理器上實施)。在一些實例中,GFID資料庫302在物件儲存系統120上或儲存元件200a至200d中的一者上實施。在一些實例中,GFID資料庫302在AI-PU 112a至112h、儲存元件200a至200d及物件儲存系統120外部的計算元件上實施。
GFID資料庫302被配置成儲存用於辨識與AI模型訓練對話(AI model training session)相關聯的資源的元資料。舉例而言,GFID資料庫302可儲存GFID之間的關聯、與AI PU相關聯的資料、與一或多個儲存元件相關聯的資料以及與一或多個物件儲存系統相關聯的資料。與AI PU相關聯的資料可包括AI PU的辨識符、與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的說明。與AI PU相關聯的資料406包括實體辨識符或名稱408。實體辨識符或名稱408可包括網路位址(例如,網際網路協定位址)、主機名稱、另一辨識符或其組合。資料406更包括與AI PU相關聯的連接辨識符410。連接辨識符410可包括用於辨識連接的套接辨識符(socket identifier)、其他類型的連接辨識符或其組合,由實體辨識符或名稱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)可向物件儲存系統120發出IO命令(例如,讀取請求)。第一AI PU 112a可在IO命令中包括與AI訓練對話(或其他資料流量)相關聯的GFID。在一些實施方案中,第一AI PU 112a可基於由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中辨識的與第一AI PU 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相關聯的頻寬,且接著基於所述頻寬指配時間戳。舉例而言,被指配的時間戳可對應於物件儲存系統120接收到IO命令的時間加上基於頻寬選擇的偏置量。為進行例示,物件儲存系統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毫秒(millisecond,ms))且基於Y設定第二偏置量(例如,+3毫秒)。在另一實施方案中,處理器單元121可基於GFID的頻寬及基於與GFID相關聯的前一IO命令的前一時間戳(n-1)而為與GFID相關聯的特定IO命令指配時間戳(n)。為進行例示,處理器單元121可將時間戳n指配成使得時間戳n-1與時間戳n之間的時間滿足由與GFID相關聯的頻寬指示的資料速率。在一些實施方案中,處理器單元121為與GFID相關聯的IO命令指配時間戳,使得GFID的時間戳之間的平均時間滿足與GFID相關聯的頻寬(例如,不論物件儲存系統120何時接收到IO命令)。如以下進一步所闡釋,物件儲存元件可被配置成使用時間戳來排程對命令的回應。因此,基於與AI訓練對話相關聯的GFID設定IO命令的時間戳可為在若干元件之間交換資料的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可向AI PU返送錯誤訊息(例如,經由NIC 122)。物件儲存系統120的處理器單元121可以基於與記憶體緩衝器124a至124h相關聯的優先權確定的次序來對來自記憶體緩衝器124a至124h的IO命令進行處理。此外,在一些實施方案中,物件儲存系統120的處理器單元121可基於由GFID資料庫302辨識的與儲存元件相關聯的頻寬428來限制將請求傳輸至儲存元件200a至200d中的特定一者的速率。
儲存元件200a至200d(例如,儲存元件200a至200d的處理器單元205)可被配置成以基於相關聯請求中所包括的時間戳而確定的次序發送資料(例如,資料組塊)。儲存元件200a至200d可將資料直接發送至發出請求的AI PU或者將資料經由NIC 201發送至物件儲存系統120。舉例而言,第一儲存元件200a可經由第一儲存元件200a的NIC 201接收對第一資料組塊的請求。第一儲存元件200a的處理器單元205可基於請求中的時間戳將請求插入至分段緩衝器202a至202d中的一者中。舉例而言,可基於時間戳來確定請求被添加至分段緩衝器中的位置,使得以時間戳次序儲存分段緩衝區中所包括的請求。
此外,處理器單元205可基於與請求中的GFID相關聯的頻寬(例如,頻寬428)選擇請求被插入至的分段緩衝器。可自分段緩衝器處理所述請求(例如,以基於分段緩衝器的優先權的次序)並將所述請求發送至匯流排206以由儲存所請求資料(例如,資料組塊)的驅動機(例如,驅動機208a至208d中的一者)進行接收。
驅動機可將資料返送至匯流排206,以由儲存元件200經由NIC 201輸出至與GFID相關聯的AI PU。舉例而言,處理器單元205可啟動將用於辨識哪個AI PU與所述請求相關聯的查詢經由NIC 201傳輸至GFID資料庫302,且接著啟動將驅動機輸出的資料經由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可使用網際網路控制訊息協定(Internet control message protocol,ICMP)、鏈路層發現協定(link layer discovery protocol,LLDP)、另一工具或其組合來確定網路拓撲。確定網路拓撲資訊可更包括確定網路中各個元件處可用的頻寬。舉例而言,AI主機元件102可確定儲存元件200的可用頻寬、物件儲存系統120的可用頻寬、AI PU 112a至112h的可用頻寬或其組合。
方法500更包括在506處讀取儲存能力資訊。舉例而言,AI主機元件102可查詢儲存元件200a至200d、物件儲存系統120或其組合,以確定可用於AI訓練對話的儲存容量。
方法500更包括在508處分析網路資訊及儲存能力資訊並產生將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,並開始向物件儲存系統120發出IO命令作為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。
方法600更包括在608處自第二AI PU接收第二IO命令,所述第二IO命令與第二AI模型訓練操作相關聯。舉例而言,物件儲存系統120可經由NIC 122自第二AI PU 112b接收第二IO命令。第二IO命令可包括與由第二AI PU 112b實行的第二AI訓練對話相關聯的第二GFID。
方法600更包括在610處基於被指配給第一AI模型訓練操作的第一頻寬將第一時間戳指配給第一IO命令。舉例而言,物件儲存系統120的處理器單元121可查詢GFID資料庫302,以確定與第一IO命令中所包括的GFID相關聯的第一頻寬指示符412。物件儲存系統120的處理器單元121可基於所辨識的第一頻寬將第一時間戳指配給第一IO命令。在一些實例中,第一時間戳對應於在物件儲存系統120處接收到第一IO命令的時間加上基於第一頻寬確定的偏置量。
方法600更包括在612處基於被指配給第二AI模型訓練操作的第二頻寬將第二時間戳指配給第二IO命令。舉例而言,物件儲存系統120可查詢GFID資料庫302,以確定與第二IO命令中所包括的GFID相關聯的第二頻寬指示符412。物件儲存系統120的處理器單元121可基於所辨識的第二頻寬將第二時間戳指配給第一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 PU 112a的傳輸進行排程。在一些實施方案中,第一儲存元件200a的處理器單元205等待至由第一時間戳指示的時間,以將第一資料組塊傳輸至第一AI PU 112a。
方法700更包括在712處將第二資料組塊發送至第二AI模型處理單元,其中第二資料組塊的傳輸的定時是基於第二時間戳。舉例而言,第一資料儲存元件200a的處理器單元205可啟動將第二資料組塊經由NIC 201傳輸至第二AI PU 112b。第一資料儲存元件200a的處理器單元205可基於第二時間戳對來自分段緩衝器202a至202d中的一者的第二請求的處理進行排程及/或對第二資料組塊向第一AI PU 112a的傳輸進行排程。在一些實施方案中,第一儲存元件200a的處理器單元205等待至由第二時間戳指示的時間,以將第二資料組塊傳輸至第一AI PU 112a。
因此,可由儲存元件使用方法700以時間同步方式傳輸資料組塊。由於資料儲存元件用來進行同步傳輸的時間戳可基於AI訓練對話優先權,因此資料的傳輸可考慮AI訓練對話的相對優先權。
參照圖8,示出如下順序圖800:順序圖800例示出其中第一AI PU 112a針對特定AI訓練對話發出三個IO命令的實例。順序圖例示出第一儲存元件200a至第n儲存元件200n。如上所述,圖3所示系統可包括與所示四個儲存元件不同數目的儲存元件。
所述順序包括第一AI PU 112a在802處連接至物件儲存系統120。因應於確定出已針對AI訓練對話成功建立儲存查詢計劃且所述儲存查詢計劃將物件儲存系統120指配給AI訓練對話,第一AI PU 112a可啟動此連接。在所例示的實例中,AI訓練對話具有「ABC」的GFID。因此,GFID資料庫302儲存將GFID「ABC」與物件儲存系統120相關聯的GFID資料庫表項。
所述順序包括第一AI PU 112a在804處連接至第一儲存元件200a。第一AI PU 112a可因應於確定出儲存查詢計劃將第一儲存元件200a指配給AI訓練對話而啟動此連接。GFID資料庫表項將GFID「ABC」與第一儲存元件200a相關聯。
所述順序包括第一AI PU 112a在806處連接至第二儲存元件200b。第一AI PU 112a可因應於確定出儲存查詢計劃將第二儲存元件200b指配給AI訓練對話而啟動此連接。GFID資料庫表項將GFID「ABC」與第二儲存元件200b相關聯。
所述順序包括第一AI PU 112a在808處連接至第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 command)。第一IO命令辨識第一資料物件(例如,藉由鍵值),第二IO命令辨識第二資料物件,且第三IO命令辨識第三資料物件。物件儲存系統120將第一時間戳指配給第一IO命令,將第二時間戳指配給第二IO命令,且將第三時間戳指配給第三命令。時間戳是基於與GFID資料庫302中的GFID「ABC」相關聯的優先權(例如,頻寬)而產生。
對於每一命令,物件儲存系統120接著產生對與由IO命令辨識的物件相關聯的資料組塊的請求。所述請求包括被指配給IO命令的時間戳並由物件儲存系統120發送至在GFID資料庫302中被辨識為與GFID「ABC」相關聯的儲存元件。
在圖8所例示的實例中,物件儲存系統120基於第一IO命令產生對資料組塊的第一請求、對資料組塊的第二請求及對資料組塊的第三請求。該些請求中的每一者包括被指配給第一IO命令的第一時間戳。物件儲存系統120更基於第二IO命令產生對資料組塊的第四請求、對資料組塊的第五請求及對資料組塊的第六請求。該些請求中的每一者包括被指配給第二IO命令的第二時間戳。物件儲存系統120更基於第三IO命令產生對資料組塊的第七請求、對資料組塊的第八請求及對資料組塊的第九請求。該些請求中的每一者包括被指配給第三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傳輸資料組塊。在一些實施方案中,在由與資料組塊相關聯的時間戳指示的時間(或在近似時間(例如,在3毫秒內))自分段緩衝器202b移除資料組塊並將所述資料組塊傳輸至第一AI PU 112a。
因此,在所例示的順序800中,在834處將對第一請求作出因應的資料組塊輸出至第一AI PU 112a,在836處將與第二請求相關聯的資料組塊輸出至第一AI PU 112a,在838處將與第三請求相關聯的資料組塊輸出至第一AI PU 112a,在840處將與第四請求相關聯的資料組塊輸出至第一AI PU 112a,在842處將與第五請求相關聯的資料組塊輸出至第一AI PU 112a,在844處將與第六請求相關聯的資料組塊輸出至第一AI PU 112a,在846處將與第七請求相關聯的資料組塊輸出至第一AI PU 112a,在848處將與第八請求相關聯的資料組塊輸出至第一AI PU 112a,且在850處將與第九請求相關聯的資料組塊輸出至第一AI PU 112a。應注意,除確定返送資料的順序之外,由物件儲存系統120設定的時間戳亦確定將資料輸送至AI PU的速率。因此,被返送至第一AI PU 112a的資料組塊可為時間同步的且以適當的速率進行輸送。
在所例示的實例中,物件儲存系統120在852處將第一完成通知傳輸至第一AI PU 112a,在854處將第二完成通知傳輸至第一AI PU 112a,且在856處將第三完成通知傳輸至第一AI PU 112a。可基於與時間戳相關聯的時間來傳輸完成通知。舉例而言,可由物件儲存系統120在由第一時間戳指示的時間傳輸第一完成通知。因此,第一AI PU 112a可被通知與第一IO命令相關聯的所有資料組塊應已被傳輸。
上述實例闡述了其中一個AI主機元件與一個物件儲存系統交互作用的實施方案。然而,系統可包括多於一個的AI主機元件及多於一個的物件儲存系統。多於一個的AI主機元件可與物件儲存系統交互作用。此外,AI主機元件可與多於一個的物件儲存系統交互作用。包括許多AI主機元件及許多物件儲存系統的示例性系統在圖9中例示出。圖9所示系統的構成及操作可類似於以上參照圖1至圖8闡述的系統及操作。
前述者是對示例性實施例的例示,且不應被視為對示例性實施例進行限制。儘管已闡述了幾個示例性實施例,然而熟習此項技術者將易於理解,可在不實際上背離示例性實施例的新穎教示內容及優點的條件下在示例性實施例中作出諸多潤飾。因此,所有此類潤飾皆旨在包含於如在申請專利範圍中所界定的示例性實施例的範圍內。在申請專利範圍中,方式加功能條款旨在涵蓋本文中所述的用於實行所敍述功能的結構、且不僅涵蓋結構性等效形式而且亦涵蓋等效結構。因此,應理解,前述者是對示例性實施例的例示且不應被視為僅限於所揭露的具體實施例,且對所揭露示例性實施例所作的潤飾以及其他示例性實施例皆旨在包含於隨附申請專利範圍的範圍內。
本文中所使用的術語僅是為了闡述具體實施例,而非旨在限制本揭露。除非上下文清楚地另外指示,否則本文中所使用的單數形式「一(a及an)」旨在亦包含複數形式。更應理解,當在本說明書中使用用語「包括(comprises/comprising)」、「具有(have/having)」及「包含(includes/including)」時,是指明所陳述特徵、整數、步驟、操作、部件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、部件、組件及/或其群組的存在或增添。本文中所使用的用語「及/或」包括相關聯所列項其中一或多個項的任意及全部組合。
如本文中所使用的,在闡述本揭露的實施例時使用「可(may)」是指代「本揭露的一或多個實施例」。本文中所使用的用語「使用(use)」、「正使用(using)」及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」及「被利用(utilized)」同義。此外,用語「示例性(exemplary)」旨在指代實例或例示。
當可以不同的方式實施某一實施例時,可與所述次序不同地實行一特定過程次序。舉例而言,可實質上同時實行或以與所述次序不同的次序實行兩個連續的所述過程或方法步驟。
根據本文中所述本揭露實施例的電子元件或電元件及/或任何其他相關元件或組件可利用任何適合的硬體、韌體(例如,特殊應用積體電路)、軟體、或軟體、韌體及硬體的組合來實施。舉例而言,可將該些元件的各種組件形成於一個積體電路(integrated circuit,IC)晶片上或單獨的IC晶片上。此外,可將該些元件的各種組件實施於可撓性印刷電路膜、膠帶載體封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上、或形成於一個基板上。此外,該些元件的各種組件可為在一或多個計算元件中在一或多個處理器上運行、執行電腦程式指令並與用於實行本文中所述各種功能的其他系統組件交互作用的過程或執行緒(thread)。電腦程式指令儲存於可在使用例如(舉例而言)隨機存取記憶體(RAM)等標準記憶體元件的計算元件中實施的記憶體中。電腦程式指令亦可儲存於例如(舉例而言)光碟唯讀記憶體(compact disk read-only memory,CD-ROM)、快閃驅動機等其他非暫時性電腦可讀取媒體中。另外,熟習此項技術者應認識到,在不背離本揭露示例性實施例的精神及範圍的條件下,各種計算元件的功能可被組合或整合至單個計算元件中,或者特定計算元件的功能可跨一或多個其他計算元件分佈。
除非另外定義,否則本文中所使用的所有用語(包括技術用語及科學用語)具有與本揭露所屬技術中具有通常知識者所通常理解的含義相同的含義。更應理解,用語(例如在常用詞典中所定義的用語)應被解釋為具有與其在相關技術及/或本說明書的上下文中的含義一致的含義,且除非本文中明確如此定義,否則不應將其解釋為具有理想化或過於正式的意義。
100:系統 102:人工智慧(AI)主機元件 104、122、201:網路介面控制器(NIC) 106:動態隨機存取記憶體(DRAM) 108:AI應用 110:資料載入器 112a:人工智模型處理單元(AI PU)/第一AI PU 112b:AI PU/第二AI PU 112c:AI PU/第三AI PU 112d:AI PU/第四AI PU 112e:AI PU/第五AI PU 112f:AI PU/第六AI PU 112g:AI PU/第七AI PU 112h:AI PU/第八AI PU 120:物件儲存系統 121、205:處理器單元 124a:記憶體緩衝器/緩衝器/第一記憶體緩衝器 124b:記憶體緩衝器/緩衝器/第二記憶體緩衝器 124c:記憶體緩衝器/緩衝器/第三記憶體緩衝器 124d:記憶體緩衝器/緩衝器/第四記憶體緩衝器 124e:記憶體緩衝器/緩衝器/第五記憶體緩衝器 124f:記憶體緩衝器/緩衝器/第六記憶體緩衝器 124g:記憶體緩衝器/緩衝器/第七記憶體緩衝器 124h:記憶體緩衝器/緩衝器/第八記憶體緩衝器 126:資料物件 126a:資料物件/第一資料物件 126b:資料物件/第二資料物件 200:儲存元件 200a:儲存元件/第一儲存元件/第一資料儲存元件 200b:儲存元件/第二儲存元件 200c:儲存元件/第三儲存元件 200d:儲存元件/第四儲存元件 200n:第n儲存元件 202a:第一分段緩衝器/分段緩衝器 202b:第二分段緩衝器/分段緩衝器 202c:第三分段緩衝器/分段緩衝器 202d:第四分段緩衝器/分段緩衝器 204a、204b、204c、204d:輸入/輸出(IO) 206:匯流排 208a:第一驅動機/驅動機 208b:第二驅動機/驅動機 208c:第三驅動機/驅動機 208d:第四驅動機/驅動機 302:全域流量辨識符(GFID)資料庫 402:表項 404:全域流量辨識符(GFID) 406、414、422:資料 408:實體辨識符或名稱 410、418、426:連接辨識符 412:頻寬指示符/第一頻寬指示符/第二頻寬指示符 416:物件儲存系統辨識符 420:頻寬指示符 424:目標辨識符 428:頻寬指示符/頻寬 500、600、700:方法 502、504、506、508、510、512、514、516、606、608、610、612、702、704、706、708、710、712、802、804、806、808、810、812、814、816、818、820、822、824、826、828、830、832、834、836、838、840、842、844、846、848、850、852、854、856:操作 800:順序圖/順序
圖1是實行時間同步儲存輸送的系統的圖。 圖2是實行時間同步儲存輸送的儲存元件的圖。 圖3是包括多個圖2所示儲存元件的實行時間同步儲存輸送的系統的另一圖。 圖4是全域流量辨識符資料庫表項的圖。 圖5是例示出構建儲存查詢計劃的方法的流程圖。 圖6是例示出將時間戳指配給IO請求的方法的流程圖。 圖7是例示出因應於IO請求而輸出資料的方法的流程圖。 圖8是例示出IO命令的同步處理的順序圖。 圖9是例示出包括多個人工智慧主機元件及多個物件儲存系統的系統的圖。
100:系統
102:人工智慧(AI)主機元件
104、122:網路介面控制器(NIC)
106:動態隨機存取記憶體(DRAM)
108:AI應用
110:資料載入器
112a:人工智模型處理單元(AIPU)/第一AIPU
112b:AIPU/第二AIPU
112c:AIPU/第三AIPU
112d:AIPU/第四AIPU
112e:AIPU/第五AIPU
112f:AIPU/第六AIPU
112g:AIPU/第七AIPU
112h:AIPU/第八AIPU
120:物件儲存系統
121:處理器單元
124a:記憶體緩衝器/緩衝器/第一記憶體緩衝器
124b:記憶體緩衝器/緩衝器/第二記憶體緩衝器
124c:記憶體緩衝器/緩衝器/第三記憶體緩衝器
124d:記憶體緩衝器/緩衝器/第四記憶體緩衝器
124e:記憶體緩衝器/緩衝器/第五記憶體緩衝器
124f:記憶體緩衝器/緩衝器/第六記憶體緩衝器
124g:記憶體緩衝器/緩衝器/第七記憶體緩衝器
124h:記憶體緩衝器/緩衝器/第八記憶體緩衝器
126a:資料物件/第一資料物件
126b:資料物件/第二資料物件

Claims (26)

  1. 一種方法,包括: 在第一計算元件處自第一人工智慧處理單元接收第一輸入/輸出命令,所述第一輸入/輸出命令與第一人工智慧模型訓練操作相關聯; 在所述第一計算元件處自第二人工智慧處理單元接收第二輸入/輸出命令,所述第二輸入/輸出命令與第二人工智慧模型訓練操作相關聯; 基於被指配給所述第一人工智慧模型訓練操作的第一頻寬將第一時間戳指配給所述第一輸入/輸出命令;以及 基於被指配給所述第二人工智慧模型訓練操作的第二頻寬將第二時間戳指配給所述第二輸入/輸出命令。
  2. 如請求項1所述的方法,其中所述第一命令包括用於辨識所述第一人工智慧模型訓練操作的第一全域流量辨識符,且所述第二命令包括用於辨識所述第二人工智慧模型訓練操作的第二全域流量辨識符,其中所述方法更包括: 基於所述第一全域流量辨識符自資料庫擷取與所述第一人工智慧模型相關聯的所述第一頻寬的指示;以及 基於所述第二全域流量辨識符自所述資料庫擷取與所述第二人工智慧模型相關聯的所述第二頻寬的指示。
  3. 如請求項1所述的方法,更包括:基於所述第一輸入/輸出命令將對資料的第一組塊的第一請求發送至第一儲存元件,所述第一請求包括所述第一時間戳。
  4. 如請求項3所述的方法,更包括:基於所述第一輸入/輸出命令將對資料的第二組塊的第二請求發送至第二儲存元件,所述第二請求包括所述第一時間戳。
  5. 如請求項4所述的方法,更包括:基於所述第二輸入/輸出命令將對資料的第三組塊的第三請求發送至第三儲存元件,所述第三請求包括所述第二時間戳。
  6. 如請求項3所述的方法,其中所述第一輸入/輸出命令辨識資料物件,且其中所述第一組塊對應於所述資料物件的第一抹除編碼組塊,且所述第二組塊對應於所述資料物件的第二抹除編碼組塊。
  7. 如請求項3所述的方法,其中所述第一儲存元件對應於架構上的快速非揮發性記憶體目標。
  8. 一種方法,包括: 在儲存元件處接收對第一資料組塊的第一請求,所述第一請求包括第一時間戳及第一全域流量辨識符; 在所述儲存元件處接收對第二資料組塊的第二請求,所述第二請求包括第二時間戳及第二全域流量辨識符; 基於所述第一全域流量辨識符在所述儲存元件處辨識第一人工智慧模型處理單元; 基於所述第二全域流量辨識符在所述儲存元件處辨識第二人工智慧模型處理單元; 自所述儲存元件發送所述第一資料組塊至所述第一人工智慧模型處理單元,其中所述第一資料組塊的傳輸的定時是基於所述第一時間戳;以及 自所述儲存元件發送所述第二資料組塊至所述第二人工智慧模型處理單元,其中所述第二資料組塊的傳輸的定時是基於所述第二時間戳。
  9. 如請求項8所述的方法,其中所述儲存元件包括架構上的快速非揮發性記憶體目標,其中所述架構上的快速非揮發性記憶體目標包括多個固態驅動機。
  10. 如請求項8所述的方法,其中所述第一人工智慧模型處理單元包括圖形處理器單元。
  11. 如請求項8所述的方法,其中所述第一人工智慧模型處理單元包括在處理器上執行的應用。
  12. 如請求項8所述的方法,其中所述第一資料組塊對應於資料物件的抹除編碼組塊。
  13. 如請求項8所述的方法,其中因應於所述第一時間戳位於所述第二時間戳之前而在所述第二資料組塊之前傳輸所述第一資料組塊。
  14. 如請求項8所述的方法,其中辨識所述第一人工智慧模型處理單元包括:將用於辨識所述第一全域流量辨識符的查詢發送至全域流量辨識符資料庫。
  15. 一種計算元件,包括: 網路介面;以及 處理器單元,被配置成: 自第一人工智慧處理單元接收第一輸入/輸出命令,所述第一輸入/輸出命令與第一人工智慧模型訓練操作相關聯; 自第二人工智慧處理單元接收第二輸入/輸出命令,所述第二輸入/輸出命令與第二人工智慧模型訓練操作相關聯; 基於被指配給所述第一人工智慧模型訓練操作的第一頻寬將第一時間戳指配給所述第一輸入/輸出命令;以及 基於被指配給所述第二人工智慧模型訓練操作的第二頻寬將第二時間戳指配給所述第二輸入/輸出命令。
  16. 如請求項15所述的計算元件,其中所述第一命令包括用於辨識所述第一人工智慧模型訓練操作的第一全域流量辨識符,且所述第二命令包括用於辨識所述第二人工智慧模型訓練操作的第二全域流量辨識符,其中所述處理器單元更被配置成: 基於所述第一全域流量辨識符自資料庫擷取與所述第一人工智慧模型相關聯的所述第一頻寬的指示;以及 基於所述第二全域流量辨識符自所述資料庫擷取與所述第二人工智慧模型相關聯的所述第二頻寬的指示。
  17. 如請求項15所述的計算元件,其中所述處理器單元更被配置成基於所述第一輸入/輸出命令而啟動將對資料的第一組塊的第一請求經由所述網路介面傳輸至第一儲存元件,所述第一請求包括所述第一時間戳。
  18. 如請求項17所述的計算元件,其中所述處理器單元更被配置成基於所述第一輸入/輸出命令而啟動將對資料的第二組塊的第二請求經由所述網路介面傳輸至第二儲存元件,所述第二請求包括所述第一時間戳。
  19. 如請求項18所述的計算元件,其中所述處理器單元更被配置成基於所述第二輸入/輸出命令而啟動將對資料的第三組塊的第三請求經由所述網路介面傳輸至第三儲存元件,所述第三請求包括所述第二時間戳。
  20. 如請求項17所述的計算元件,其中所述第一輸入/輸出命令辨識資料物件,且其中所述第一組塊對應於所述資料物件的第一抹除編碼組塊,且所述第二組塊對應於所述資料物件的第二抹除編碼組塊。
  21. 如請求項17所述的計算元件,其中所述第一儲存元件對應於架構上的快速非揮發性記憶體目標。
  22. 一種儲存元件,包括: 網路介面;以及 處理器單元,被配置成: 接收對第一資料組塊的第一請求,所述第一請求包括第一時間戳及第一全域流量辨識符; 接收對第二資料組塊的第二請求,所述第二請求包括第二時間戳及第二全域流量辨識符; 基於所述第一全域流量辨識符辨識第一人工智慧模型處理單元; 基於所述第二全域流量辨識符辨識第二人工智慧模型處理單元; 啟動將所述第一資料組塊經由所述網絡介面傳輸至所述第一人工智慧模型處理單元,其中所述第一資料組塊的傳輸的定時是基於所述第一時間戳;以及 啟動將所述第二資料組塊經由所述網絡介面傳輸至所述第二人工智慧模型處理單元,其中所述第二資料組塊的傳輸的定時是基於所述第二時間戳。
  23. 如請求項22所述的儲存元件,其中所述儲存元件包括架構上的快速非揮發性記憶體目標,所述架構上的快速非揮發性記憶體目標包括多個固態驅動機。
  24. 如請求項22所述的儲存元件,其中所述第一資料組塊對應於資料物件的抹除編碼組塊。
  25. 如請求項22所述的儲存元件,其中因應於所述第一時間戳位於所述第二時間戳之前而在所述第二資料組塊之前傳輸所述第一資料組塊。
  26. 如請求項22所述的儲存元件,其中辨識所述第一人工智慧模型處理單元包括:將用於辨識所述第一全域流量辨識符的查詢發送至全域流量辨識符資料庫。
TW110117874A 2020-07-14 2021-05-18 時間同步儲存輸送的方法、計算元件以及儲存元件 TW202203095A (zh)

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 2021-01-21
US17/154,444 US11609869B2 (en) 2020-07-14 2021-01-21 Systems, methods, and devices for time synchronized storage delivery

Publications (1)

Publication Number Publication Date
TW202203095A true TW202203095A (zh) 2022-01-16

Family

ID=79274345

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110117874A TW202203095A (zh) 2020-07-14 2021-05-18 時間同步儲存輸送的方法、計算元件以及儲存元件

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10168945B2 (en) 2014-10-29 2019-01-01 Hitachi, Ltd. Storage apparatus and storage system
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
US10949303B2 (en) 2017-12-11 2021-03-16 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

Also Published As

Publication number Publication date
US20230229605A1 (en) 2023-07-20
US20220019546A1 (en) 2022-01-20
CN113934659A (zh) 2022-01-14
US11914529B2 (en) 2024-02-27
US11609869B2 (en) 2023-03-21
KR20220008754A (ko) 2022-01-21
JP2022018106A (ja) 2022-01-26

Similar Documents

Publication Publication Date Title
TWI772611B (zh) 主機系統及其方法和加速模組
US10348830B1 (en) Virtual non-volatile memory express drive
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
JP2019516171A5 (zh)
US20180225254A1 (en) Network communications using pooled memory in rack-scale architecture
CN1658180A (zh) 总线系统及其方法
WO2011137815A1 (zh) 数据存取的方法、消息接收解析器及系统
TW201543218A (zh) 具有多節點連接的多核網路處理器互連之晶片元件與方法
TW201543360A (zh) 用於在多節點環境中對i/o 存取排序的方法和系統
KR20200125389A (ko) 저장 장치에서 가속 커널들의 상태 모니터링 방법 및 이를 사용하는 저장 장치
US20140122565A1 (en) Centralized Computing
CN113127139B (zh) 一种基于数据面开发套件dpdk的内存分配方法和装置
US11914529B2 (en) Systems, methods, and devices for time synchronized storage delivery
US20140089624A1 (en) Cooperation of hoarding memory allocators in a multi-process system
WO2014101502A1 (zh) 基于内存芯片互连的内存访问处理方法、内存芯片及系统
US10581997B2 (en) Techniques for storing or accessing a key-value item
US10523741B2 (en) System and method for avoiding proxy connection latency
CN110445580B (zh) 数据发送方法及装置、存储介质、电子装置
US9785361B1 (en) Processing data access requests from multiple interfaces for data storage devices
WO2023030178A1 (zh) 一种基于用户态协议栈的通信方法及相应装置
JP2010140477A5 (zh)
US11829641B2 (en) Storage device and operating method for managing a command queue
JP6475852B2 (ja) サービスデータを処理するための方法、装置、および、システム
CN104580328A (zh) 虚拟机迁移方法、装置及系统
CN114172916A (zh) 一种Spark集群中的数据传输方法、系统及相关装置