JP2018198054A - マシンラーニングを実行するデータストレージ及び処理システムとその動作方法 - Google Patents

マシンラーニングを実行するデータストレージ及び処理システムとその動作方法 Download PDF

Info

Publication number
JP2018198054A
JP2018198054A JP2018088873A JP2018088873A JP2018198054A JP 2018198054 A JP2018198054 A JP 2018198054A JP 2018088873 A JP2018088873 A JP 2018088873A JP 2018088873 A JP2018088873 A JP 2018088873A JP 2018198054 A JP2018198054 A JP 2018198054A
Authority
JP
Japan
Prior art keywords
data
drive
processing
processing device
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018088873A
Other languages
English (en)
Other versions
JP6975095B2 (ja
JP2018198054A5 (ja
Inventor
ラムダス ピー. カチェア,
P Kachare Ramdas
ラムダス ピー. カチェア,
ソンポン ポール オラリグ,
Paul Olarig Sompong
ソンポン ポール オラリグ,
デイビッド シュワドラー,
Schwaderer David
デイビッド シュワドラー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018198054A publication Critical patent/JP2018198054A/ja
Publication of JP2018198054A5 publication Critical patent/JP2018198054A5/ja
Application granted granted Critical
Publication of JP6975095B2 publication Critical patent/JP6975095B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7896Modular architectures, e.g. assembled from a number of identical packages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

【課題】ストレージシステムでマシンラーニングを実行するデータストレージ及び処理システムとその動作方法を提供する。【解決手段】本発明のデータストレージ及び処理システムは、ホストサーバ及びストレージ部を備え、ストレージ部は、ドライブメモリー及びドライブプロセッサを含むドライブと、ホストサーバとドライブメモリーとの間でデータを伝送し受信するためにホストサーバをドライブに連結させる外部スイッチと、グラフィック処理装置と、を含み、ドライブプロセッサは、処理命令及びデータをドライブメモリーからグラフィック処理装置に伝送し、グラフィック処理装置は、処理命令に従ってデータを処理して結果データを生成する。【選択図】図1

Description

本発明は、マシンラーニングのためのシステムに関し、より詳しくは、SSDフォームファクターで内蔵されたGPUを有するNVMe−oFeSSDシャシーに実装されたストレージシステムにおいて、複数のグラフィック処理装置を利用してマシンラーニングアルゴリズムを実行するデータストレージ及び処理システムとその動作方法に関する。
収集及び格納されるデータ量が増加している。モノのインターネット(Internet of Things)からソーシャルネットワーク、デジタルヘルスの領域に至るまで数多くのアプリケーションは膨大な量のデータを生成する。このようなデータはデータセンターのようなデータシステムでホスト(host)される。データは、しばしば格納、処理、及び分析が要求される。マシンラーニングアルゴリズムのようなアルゴリズムはデータから特徴又は有用な情報を抽出するためにビッグデータ(big data)セットに適用される。このデータを、迅速、効率的、経済的、弾力的に、格納、処理、及び分析するための技法及びアーキテクチャが必要である。
背景技術で開示する上記の情報は、単に本発明の背景に対する理解を増進させるためのものであり、従って通常の技術者にとって既に知られた先行技術ではない情報を含む。
特許文献1:米国特許第8819335号明細書
特許文献2:米国特許第9317204号明細書
特許文献3:米国特許第9430412号明細書
特許文献4:米国特許第9483431号明細書
特許文献5:米国特許出願公開第2017/0210076号明細書
特許文献6:米国特許出願公開第2017/0010995号明細書
特許文献7:米国特許出願公開第2017/0019312号明細書
特許文献8:米国特許出願公開第2017/0060442号明細書
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、ストレージシステムでマシンラーニングアルゴリズムを実行するデータストレージ及び処理システムとその動作方法を提供することにある。
上記目的を達成するためになされた本発明の一態様によるとデータストレージ及び処理システムは、ホストサーバ及びストレージ部を備え、前記ストレージ部は、ドライブメモリー及びドライブプロセッサを含むドライブと、前記ホストサーバと前記ドライブのメモリーとの間でデータを伝送し受信するために前記ホストサーバを前記ドライブに連結させる外部スイッチと、グラフィック処理装置と、を含み、前記ドライブプロセッサは、処理命令及びデータを前記ドライブメモリーから前記グラフィック処理装置に伝送し、前記グラフィック処理装置は、前記処理命令に従ってデータを処理して結果データを生成する。
前記グラフィック処理装置は、U.2コネクターを含み、前記U.2コネクターを介して前記ドライブに連結され、前記U.2コネクターを介して前記処理命令及びデータを受信し得る。
前記グラフィック処理装置は、前記結果データを前記ドライブプロセッサに伝送し、前記ドライブプロセッサは、前記ドライブメモリーに前記結果データを格納し得る。
前記グラフィック処理装置は、前記外部スイッチに連結され、前記外部スイッチを利用して前記結果データを前記ホストサーバに伝送し得る。
前記グラフィック処理装置は、前記処理命令に従ってデータの処理を完了した後、状態メッセージを前記ドライブプロセッサに伝送し得る。
前記ホストサーバは、トリガー命令を前記ドライブプロセッサに伝送し、前記ドライブプロセッサは、前記トリガー命令に応答し、実行時に前記処理命令及びデータを前記グラフィック処理装置に伝送する過程を含むデータ処理アルゴリズムを実行し得る。
前記ドライブは、能力テーブルを含み、前記ドライブプロセッサは、前記ドライブメモリーに格納されたデータチャンク及び前記データチャンクに適用される変換を識別し、前記グラフィック処理装置が前記変換を遂行可能なことを示す前記能力テーブルから前記グラフィック処理装置のアドレスを検索し、前記データチャンクを前記グラフィック処理装置のアドレスに伝送し得る。
前記ストレージ部は、前記グラフィック処理装置の能力を判別し、前記グラフィック処理装置の能力に基づいて前記能力テーブルをアップデートするベースボード管理制御器(baseboard management controller)を、更に含み得る。
前記ストレージ部は、各ドライブが別途の能力テーブルを有する複数のドライブと、複数のグラフィック処理装置と、を含み、前記ベースボード管理制御器は、前記複数のドライブの各ドライブの各能力テーブルをアップデートし得る。
前記ベースボード管理制御器及び前記グラフィック処理装置は、NVMe−MI(Non Volatile Memory express−Management Interface)のプロトコルを用いて通信し、前記ベースボード管理制御器は、前記NVMe−MIの識別(Identify)コマンドを利用することで、前記グラフィック処理装置の能力を判別し得る。
前記ストレージ部は、複数のグラフィック処理装置を含み、前記ベースボード管理制御器は、前記複数のグラフィック処理装置の各グラフィック処理装置に対する負荷を判別し、前記複数のグラフィック処理装置の各グラフィック処理装置に対する負荷に基づいて前記能力テーブルをアップデートし得る。
前記外部スイッチは、イーサネット(登録商標)スイッチであり、前記ドライブは、イーサネット(登録商標)ソリッドステートドライブ(Ethernet(登録商標) solid state drive)であり得る。
前記ホストサーバは、遠隔直接アクセスストレージ(remote direct access storage)プロトコルを用いて前記ストレージ部と通信し得る。
前記ストレージ部は、シャシー(chassis)及びベースボード管理制御器を更に含み、前記グラフィック処理装置は、現場交換可能な装置であり、前記ベースボード管理制御器は、前記グラフィック処理装置が前記シャシーに挿入されることに対応してプラグイン(plug−in)イベントを感知し得る。
上記目的を達成するためになされた本発明の一態様によるドライブプロセッサ及びドライブメモリーを含むドライブとグラフィック処理装置とを備えるデータストレージ及び処理システムの動作方法は、前記ドライブプロセッサが、ホストサーバからデータを受信するステップと、前記データを前記ドライブメモリーに格納するステップと、トリガーを感知するステップと、前記トリガーに応答し、前記ドライブメモリーに格納されたデータチャンク及び前記データチャンクに適用する変換を識別するアルゴリズムを実行するステップと、前記変換を遂行する装置に対応するアドレスに対する能力テーブルを検索するステップと、前記データチャンク及び前記データチャンクを処理する処理命令を前記グラフィック処理装置のアドレスに伝送するステップと、を含む。
前記方法は、前記グラフィック処理装置が、前記データチャンク及び前記処理命令を受信するステップと、前記処理命令に従って前記データチャンクを処理して結果データを生成するステップと、を更に含み得る。
前記方法は、前記グラフィック処理装置が、前記結果データを前記ドライブプロセッサに伝送するステップと、前記ドライブプロセッサが、前記結果データを前記ドライブメモリーに格納するステップと、を更に含み得る。
前記データストレージ及び処理システムは、ベースボード管理制御器を更に備え、前記方法は、前記ベースボード管理制御器が、前記グラフィック処理装置の能力を感知するステップと、前記グラフィック処理装置の能力に基づいて前記能力テーブルをアップデートするステップと、を更に含み得る。
前記データストレージ及び処理システムは、各ドライブが能力テーブルを含む複数のドライブを含み、前記方法は、前記ベースボード管理制御器が、前記グラフィック装置の能力に基づいて前記複数のドライブの各ドライブの各能力テーブルをアップデートするステップと、を含み得る。
上記目的を達成するためになされた本発明の他の態様によるデータストレージ及び処理システムは、ドライブプロセッサ及びドライブメモリーを含むドライブとグラフィック処理装置とを備え、ホストサーバからデータを受信する手段と、前記データを前記ドライブメモリーに格納する手段と、トリガーを感知する手段と、前記トリガーに応答し、前記ドライブメモリーに格納されたデータチャンク及び前記データチャンクに適用する変換を識別するアルゴリズムを実行する手段と、前記変換を遂行する装置に対応するアドレスに対する能力テーブルを検索する手段と、前記データチャンク及び前記データチャンクを処理する処理命令を前記グラフィック処理装置のアドレスに伝送する手段と、前記処理命令に従って前記データチャンクを処理して結果データを生成し、前記結果データを前記ホストサーバに伝送する手段と、現場交換可能なグラフィック処理装置のプラグインイベントを感知し、前記現場交換可能なグラフィック処理装置の能力を判別し、前記現場交換可能なグラフィック処理装置の能力に基づき前記プラグインイベントの感知に応答して前記能力テーブルをアップデートする手段と、を含む。
本発明によると、データストレージ及び処理システムは、複数のグラフィック処理装置を利用してマシンラーニングアルゴリズムを効率的に実行することができ、複数のグラフィック処理装置の負荷の均衡をとることができる。
図1は、関連技術によるストレージシステムのブロック図である。 図2は、本発明の一実施形態によるストレージシステムのブロック図である。 図3は、本発明の一実施形態によるグラフィック処理装置のブロック図である。 図4は、本発明の一実施形態によるグラフィック処理装置と通信するドライブに対する手順を示すフローチャートである。 図5は、本発明の一実施形態による能力テーブルの一例を示す図である。 図6は、本発明の一実施形態によるグラフィック処理装置を管理するベースボード管理制御器に対する手順を示すフローチャートである。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
次の詳細な説明では、本発明の特定の実施形態のみを、図面を通じて示して説明する。当業者(通常の技術者)が認識するように、本発明は多様な形態で具現され、本明細書に記載する実施形態に制限されるものと解釈すべきではない。各実施形態に有る特徴又は態様の説明は、典型的に他の実施形態で他の類似した特徴及び態様に利用されるものとして考慮されなければならない。本明細書で同一の参照番号は同一の要素を示す。
図1は、関連技術によるストレージシステムのブロック図である。ホストサーバ110は、ネットワーク120を通じて一つ以上のストレージ部130に連結される。ホストサーバ110は、一つ以上のアプリケーション112とオペレーティングシステム(OS)及びファイルシステム114を実行する。ホストサーバ110は、一つ以上のストレージ部と相互作用するために利用される遠隔直接アクセスストレージ(rDAS:remote Direct Access Storage)ドライバーを含む。
ストレージ部130は、シャシー(chassis)131、イーサネット(登録商標)(Ethernet(登録商標):以下、「イーサネット」の(登録商標)の記載は省略する。)スイッチ132、ベースボード管理制御器(BMC:baseboard management controller)134、PCIeスイッチ136、及び複数のイーサネットソリッドステートドライブ(eSSD:ethernet Solid State Drives)(142A〜142C)を含む。PCIeスイッチ136はシャシーミッドプレーン(midplane)140を通じてBMC134をeSSD(142A〜142C)に連結する。BMC134はeSSD(142A〜142C)を管理するためにPCIeスイッチ136を利用する。イーサネットスイッチ132はeSSD(142A〜142C)をネットワーク120に連結する。ホストサーバ110は、イーサネットスイッチ132を通じてデータをeSSD(142A〜142C)に送信し、eSSD(142A〜142C)からデータを受信するためにrDASドライバーを利用する。
マシンラーニングのようなプロセスは、大量のデータが処理されるように要求する。計算リソース(例えば、プロセッサ)はデータに対してアルゴリズム(例えば、マシンラーニングアルゴリズム)を実行する。ストレージ部130に格納されたデータにこのような処理を遂行する際、ホストサーバ110はストレージ部130から処理されるデータを要請しなければならない。ストレージ部130はネットワーク120を通じてデータをホストサーバ110に伝送しなければならない。ホストサーバ110は、例えばマシンラーニングアルゴルズムを実行することにより、ホストサーバ110に位置するCPU又GPUを利用してデータを処理し、格納のためにストレージ部130に処理結果を再び伝送する必要がある。
処理のためにストレージ部130からホストサーバ110にデータを移動することは、相当な電気的エネルギーを消費し、ネットワーク120を通じてデータ及び結果を前後に伝播することに関連する処理遅延を伴う。アーキテクチャは、ネットワーク120を通じて、データ及び結果を伝送するための適切な帯域幅とデータを処理するためのホストサーバ110における処理リソース及びシステムメモリーとを要求するため、アーキテクチャの費用が高くなる。更に、ホストサーバ110でデータ処理における処理リソースの速度はデータセットの処理にボトルネック現象を引き起こし、処理に用いられる処理リソースは追加、除去、又は交換が容易でない。
図2は、本発明の一実施形態によるストレージシステムのブロックである。図2を参照すると、ホストサーバ210はネットワーク220を通じて一つ以上のストレージ部230に連結される。ホストサーバ210はアプリケーション212とオペレーティングシステム(OS)及びファイルシステム214を実行する。また、ホストサーバ210は一つ以上のストレージ部230と相互に作用するために利用されるストレージドライバー216を含む。
ストレージ部230は、シャシー231、外部スイッチ232(例えば、イーサネットスイッチ)、ベースボード管理制御器(BMC)234、内部スイッチ236(例えば、PCIeスイッチ)、一つ以上のドライブ(242A〜242B、単に242とも称する。)、及び一つ以上のU.2グラフィク処理装置(250A〜250B、単に250とも称する。)(U.2 GPU)を含む。U.2 GPUの用語を本明細書に亘って使用するが、GPUはU.2連結以外の連結で作動し、このような連結は本発明の範囲に含まれる。この用語は明確性のため単純に使用される。内部スイッチ236は、BMC234、ドライブ(242A〜242B)、及びU.2 GPU(250A〜250B)を、シャシーミッドプレーン240を通じて連結する。外部スイッチ232は、ドライブ(242A〜242B)、U.2 GPU(250A〜250B)、BMC234、及びネットワーク220を連結する。本実施形態によると、シャシー231はドライブ及び/又はU.2 GPUを受容するための複数のスロットを含む。
例えば、いくつかの実施形態において、ストレージドライバー216はNVMe−オーバーファブリック(NVMe−oF:NVMe−overFabrics)ドライバーのような遠隔直接アクセスストレージ(rDAS)ドライバーであり、ネットワーク220はイーサネットネットワークであり、外部スイッチ232はイーサネットスイッチであり、ドライブはイーサネットソリッドステートドライブ(eSSD)である。ホストサーバ210は、イーサネットネットワークを通じて、一つ以上のストレージ部230内のeSSDとデータ通信するためにrDASドライバー利用する。いくつかの実施形態において、内部スイッチ236はPCIeスイッチである。
図3は、本発明の一実施形態によるグラフィック処理装置(U.2 GPU350)のブロック図である。いくつかの実施形態において、図2のU.2 GPU(250A〜250B)は図3のU.2 GPU350で具現される。図3を参照すると、U.2 GPU350は、プロセッサ360、DRAM362、不揮発性メモリー(NVM)364、電源供給器/電源調節器366、及びコネクター352を含む。コネクター352はプロセッサ360を連結するためのインターフェースを提供する。コネクター352はPCIeスイッチのような内部スイッチ及びイーサネットスイッチのような外部スイッチとインターフェースするためのインターフェースを提供する。例えば、コネクターは、イーサネットインターフェース354、PCIeインターフェース356、及びシステム管理バス(SMBus)インターフェース358を提供する。一実施形態において、コネクター352はU.2コネクター/SFF−8639コネクターである。
U.2 GPU350は、ドライブ(例えば、eSSD)と並んでストレージ部のシャシーに連結されてストレージ部のBMCと通信するように構成される。いくつかの実施形態において、コネクター352は、eSSDのようなドライブと同様に、シャシーで同一のスロットに連結されるように構成される。いくつか実施形態において、U.2 GPU350は、シャシーに連結された場合、イーサネットスイッチのような外部スイッチと通信する。いくつかの実施形態において、U.2 GPU350は、シャシーに挿入されるか又はシャシーから除去され、ストレージ部の動作に対して自動的に収容又は除去される現場交換装置として具現される。例示は、以下の図6で説明される。この方法において、U.2 GPU350の形態の処理リソースは、効率的に、ストレージ部に追加されるか、ストレージ部から除去されるか、又はストレージ部内で交換される。また、U.2 GPU350は、与えられたスロットで利用可能な最大電力(コネクターが支援する最大電力)の提供を受けて、処理動作のための電力量を利用する。反面、スロット内のドライブは格納動作のために同一の電力量を利用する。例えば、一実施形態において、コネクターはU.2コネクターであり、U.2 GPUには25Wの電力が提供される。
図2を再び参照すると、ドライブ(242A〜242B)はプロセッサ244及びフラッシュメモリー又は他の不揮発性メモリーのようなメモリー246を含む。いくつかの実施形態において、ドライブ(242A〜242B)はプロセッサ244によって利用されるダイナミックランダムアクセスメモリー(DRAM)を含む。一つ以上のドライブ(242A〜242B)において、プロセッサ244は、対応するドライブのメモリー246に格納されたデータに対し、マシンラーニングアルゴリズムのようなデータ処理アルゴリズムを実施する命令を実行する。このような命令を実行する過程として、プロセッサ244は、データを処理する命令だけでなく、メモリー246からのデータをU.2 GPU250に伝送する。いくつかの実施形態において、データ及び命令は、内部スイッチ236を経由してシャシーミッドプレーン240を通じ、ドライブ242とU.2 GPU250との間に伝送される。いくつかの実施形態において、データ及び命令は外部スイッチ232を通じてドライブ242とU.2 GPU250との間に伝送される。ドライブ(242A〜242B)及びU.2 GPU(250A〜250B)は両方共にU.2コネクターのようなコネクターを利用する。
図4は、本発明の一実施形態によるグラフィック処理装置(U.2 GPU250)と通信するドライブ242(即ち、図2のドライブ242)に対する手順を示すフローチャートである。図4の手順はドライブ242に内蔵されたプロセッサ244により実行される。610ステップで、プロセッサ244はトリガー(trigger)を感知する。トリガーは、プロセッサ244がマシンラーニングアルゴリズムのようなアルゴリズムによりドライブ242のメモリー246に含まれるデータを処理しなければならないことを示す。例えば、いくつかの実施形態において、トリガーは特定の時間の経路である。即ち、アルゴリズムはバックグラウンドで周期的に自動的に実行されるようにトリガーされる。いくつかの実施形態において、トリガーはホストサーバ210又は他の外部のソースから受信された命令又はクエリー(query)である。いくつかの実施形態において、トリガーは、ドライブ242により受信されるデータの新しいブロック、又はホスト210から受信される他のデータの作業(例えば、リード(read)、ライト(write)、削除又、はアップデート)である。いくつかの実施形態において、トリガーは、追加分析、処理、又は他の類型の処理を必要とするマシンラーニングアルゴリズムの結果である。いくつかの実施形態において、トリガー、は臨界値を超過して格納されたデータ量のような、ドライブのいくつかの内部状態又は動作により生成される。いくつかの実施形態において、トリガーは他のドライブ242から受信され、ドライブ242は他のドライブ242にトリガーを伝達する。
いくつかの実施形態において、アルゴリズムはドライブ242のメモリー246又はその外の位置(例えば、別途のDRAM)に格納され、トリガーは単純に格納されたアルゴリズムが実行されるべきであることを示す。いくつかの実施形態において、トリガーは実行されなければならないアルゴリズムを含む。いくつかの実施形態において、ドライブ242は格納された複数のアルゴリズムを有し、トリガーは実行するアルゴリズムを識別するタグ(tag)を含む。620ステップで、プロセッサ244はアルゴリズムの実行を開始する。いくつかの実施形態において、アルゴリズムはマシンラーニングアルゴリズムである。622ステップで、プロセッサ244は、例えばアルゴルズムにおける命令又は現在のプロセッサ244の利用に基づいて、メモリー246上のデータの一つ以上のデータチャンクで一つ以上の変換、関数、又は他の形態の処理が遂行されなければならないことを識別する。
624ステップで、プロセッサ242は、必要な変換、関数、又はその他の処理作業を遂行するU.2 GPU250のアドレスを識別するための能力テーブル(CAP table:capability table)を調査する。いつかの実施形態において、能力テーブルはドライブ242に格納される。図5は、本発明の一実施形態による能力テーブル500の一例を示す図である。能力テーブル500は、プロセッサ242がU.2 GPU250を利用して遂行される変換、関数、又はその他の処理作業に対応する一連の変換1〜変換nに対する項目を含む。各項目はプロセッサ242が与えられた変換を遂行するように利用するU.2 GPU250のアドレスで満たされる。例えば、能力テーブル500を格納するドライブに対するプロセッサは、変換1を遂行するためにスロット−3内のU.2 GPU又はスロット−4内のU.2GPUを利用する。プロセッサ242は、アルゴリズムにより識別された変換を遂行するため、能力テーブルから識別されたU.2 GPUを選択する。
630ステップで、プロセッサ244はU.2 GPU250により処理されるデータチャンクを検索する。データチャンクはメモリー246から取り出されるか、又はドライブ242のリード/ライトのキャッシュバッファーから取り出される。632ステップで、プロセッサ244は、例えばメッセージのヘッダーに命令を置き、本文にデータチャンクを置くことで、データチャンク及びデータチャンクを処理するための命令を含むメッセージを生成する。634ステップで、プロセッサ244は、例えばPCIeプロトコルを利用する内部スイッチ236を通じて通信することで、U.2 GPU250にメッセージを伝達する。
628ステップで、プロセッサ244は、U.2 GPU250により処理される全てのデータチャンクがU.2 GPUに伝送されたか否かを判別する。全てのデータチャンクが伝送されていない場合、プロセッサ244は、残っているデータチャンクに対して630、632、及び634ステップを反復する。プロセッサ244が、処理される全てのデータチャンクがU.2 GPU250に伝送されたと判別した場合、手順は636ステップに進行する。
ドライブ242のプロセッサ244からメッセージを受信すると、直ちにU.2 GPU250は、結果データを生成するため、メッセージから受信されたデータチャンクに対して、メッセージで識別される変換を遂行する。U.2 GPU250が結果データを生成すると、U.2 GPU250はプロセッサ244に変換が完了したことを示す処理応答のメッセージを伝送する。いくつかの実施形態において、処理応答のメッセージは結果データを含み、プロセッサ244はドライブ242のメモリー246に結果データを格納する。いくつかの実施形態において、U.2 GPU250は追加的に又は代替的に結果データを、U.2 GPU250を含むストレージ部130内の他の位置又はストレージ部130の外部に伝送する。例えば、U.2 GPU250は追加的に又は代替的に結果データをホストサーバ210に伝送するか、或いはプロセッサ244がU.2 GPU250に対するメッセージにアドレスを含ませ、U.2 GPU250は結果データを指定されたアドレスに伝達する。
636ステップで、プロセッサ244は634ステップで伝送されたメッセージを受信した各U.2 GPU250から処理応答のメッセージを受信したか否かを判別する。全ての処理応答のメッセージを受信していない場合、638ステップで、プロセッサ24は、残っている処理応答のメッセージを受信するために待機する。全ての処理応答のメッセージが受信された場合、手順は620ステップに戻り、プロセッサ244はアルゴリズムの実行を継続する。或いは、例えばアルゴリズムが完了した場合、手順は610ステップに戻り、プロセッサ244は続けて進行するために他のトリガーが感知されるのを待つ。
図6は、本発明の一実施形態によるグラフィック処理装置(U.2 GPU250A〜250B)を管理するベースボード管理制御器234(BMC)に対する手順を示すフローチャートである。510ステップで、BMC234は、パワーオン(power−on)、プラグイン(plug−in)、又はプラグアウト(plug−out)のイベントがあったことを感知する。例えば、BMC234は、シャシー231のポート(ミッドプレーンスロット)で“現在の”ピン(pin)をモニターし、新しいU.2 GPU250が現在のピンに連結(ミッドプレーンスロットに挿入)された場合に、プラグインのイベントが発生したことを感知するか、又はU.2 GPU250が現在のピン(ミッドプレーンスロット)から除去された場合に、プラグアウトのイベントが発生したことを感知する。一実施形態において、BMC234はNVMe管理インターフェース(NVMe−MI:NVMe Management Interface)プロトコルを用いてU.2 GPU250と通信するためにPCIe又はSMBusインターフェースを利用する。
520ステップで、BMC234がイベントをパワーオンのイベントと判別した場合、BMC234はBMC234に連結されたU.2 GPU250の能力を判別する。例えば、図6に示すように、524ステップで、BMC234はBMC234に連結されたU.2 GPU250に対する必須製品のデータ(VPD:Vital Product Data)をリード(read)する。526ステップで、BMC234は、U.2 GPU250の能力に連関する情報を集めるために、追加的に又は代替的にNVMe“識別(Identify)”コマンドを利用する。522ステップで、BMC234がU.2 GPU250の能力を判別するために、スキャンされないBMC234に連結された一つ以上のU.2 GPU250が有ると判別した場合、BMC234は、残っているU.2 GPU又はU.2 GPUに対して524ステップ及び526ステップを反復する。BMC234がBMC234に連結された各U.2 GPU250がその能力を判別するためにスキャンされたと判別した場合、手順は530ステップに進行する。
530ステップで、BMC234がU.2 GPUの判別された能力に基づいてドライブ242で能力テーブルをアップデートする。いくつかの実施形態において、判別された能力はU.2 GPUの現在の使用効率、U.2 GPUの特徴、U.2 GPUゼネレーション(generation)、U.2 GPUの処理能力、スレッド(thread)プロセッサの個数、U.2 GPUのDRAMサイズ、帯域幅、遅延時間、精密度、入出力サイズ、及びMHz動作速度の中の一つ以上を含む。例えば、BMC234がスロット−3でU.2 GPU250がドライブ242に対する変換−1又は変換−2を遂行すると判別した場合、ドライブ242に対する能力テーブルは、変換−1及び変換−2に対応するものとしてスロット−3のアドレスを含むようにアップデートされる。528ステップで、BMC234がBMC234に連結される一つ以上のドライブ242が能力テーブルをアップデートしなかったと判別した場合、BMC234は、530ステップに戻り、次のドライブ242をアップデートする。BMC234がBMC234に連結された各ドライブ242が能力テーブルをアップデートしたと判別した場合、手順は510ステップに戻り、BMC234は、他のパワーオン、プラグイン、プラグアウトのイベントの感知の待機を再開する。
BMC234が510ステップで感知されたイベントが、パワーオンのイベントではないと判別した場合、手順は532ステップに進行する。532ステップで、BMC234がイベントをプラグインのイベントであると判別した場合、BMC234はプラグインのイベントを誘発したBMC234に連結されたU.2 GPU250の能力を判別する。このプラグインのイベントは、U.2 GPUが現場交換可能な装置として具現され、現場交換可能なU.2 GPUが既に一つ以上のドライブ242を含むシャシーに連結される場合に対応する。U.2 GPU250の能力を判別する例として、図6に示すように、534ステップで、BMC234はU.2 GPU250に対する必須製品のデータ(GPU.VPD)をリード(read)する。526ステップで、BMC234は追加的に又は代替的にU.2 GPU250の能力に関連する情報を集めるためにNVMe“識別”コマンドを利用する。プラグインのイベントを誘発したU.2 GPU250の能力が判別された場合、手順は540及び538ステップに進行する。538及び540ステップで、530及び528ステップに対して上述したように、BMC234は、新たなU.2 GPU250の能力に基づいてBMC234に連結されたドライブ242の能力テーブルをアップデートする。
BMC234がイベントをプラグインのイベントではないと判別した場合、例えばBMC234がイベントをプラグアウトのイベントであると判別した場合、手順は540ステップに進行する。このプラグアウトのイベントは、U.2 GPUが現場交換可能な装置として具現され、U.2 GPUがシャシー231から除去された場合に対応する。540及び538ステップで、BMC234はU.2 GPU250に対応するプラグアウトのイベントに基づいてドライブ242の能力テーブルをアップデートする。例えば、BMC234は能力テーブルからU.2 GPU250の以前のアドレスを除去する。
いくつかの実施形態において、パワーオン、プラグイン、及びプラグアウト以外に、BMC234は、イベントがストレージ管理イベントであると判別する。これはストレージ管理者(例えば、ホストサーバ210のアプリケーション212)が、どのドライブ242がどのU.2 GPU250を利用するかを変更したことを示す。イベントがストレージ管理のイベントの場合、BMC234は、これによって能力テーブルをアップデートする。例えば、ストレージ管理のイベントは特定のU.2 GPU250が特定のドライブ242を支援できないことを示し、BMC234は特定のドライブ242の能力テーブルから特定のU.2 GPU250を除去する。
いくつかの実施形態において、BMC234がドライブ242の能力テーブルをアップデートした場合、BMC234は、どのドライブに対して及びどの変換のために利用可能なものとしてリストするためのU.2 GPUを判別するに当たって、各U.2 GPUの能力以外の考慮事項を考慮する。例えば、一実施形態において、BMC234は、特定のドライブ242を特定のU.2 GPUに割り当てることで、U.2 GPU250に対する負荷の均衡をとる。このような実施形態において、BMC234は、割り当てられたU.2 GPU250のアドレスを含むように、与えられたドライブ242の能力テーブルのみをアップデートする。他の実施形態において、BMC234は特定のU.2 GPU250の能力に基づいて特定の変換を処理するために特定のU.2 GPU250を割り当てる。このような実施形態において、BMC234は割り当てられたU.2 GPU又は特定の変換のためのU.2 GPUのアドレスを含むように能力テーブルをアップデートするが、U.2 GPU能力が他の変換を処理するのに十分であるとしても、他の変換のためのアドレスを含まないこともある。例えば、BMC234は変換−3に対してスロット−2に位置する最も強力なU.2 GPU250を予約する。スロット−2でU.2 GPUは、変換−1〜変換−9を処理するために適切な能力を有する。BMC234は変換−3に対応するものとしてスロット−2を含むように能力テーブルをアップデートするが、他の変換に対してスロット−2を含まないことも有り、従って変換−3以外の他の変換に対してドライブ242がスロット−2でU.2 GPUを利用できないようにする。いくつかの実施形態において、BMC234は、利用可能なU.2 GPUの特徴、現在利用可能なU.2 GPUの特徴(例えば、専有されないか又は完全に割り当てられない)、及び/又は同時に実行する並列アルゴリズムの個数と比較して、変換に関与するアルゴリズムの類型に基づいてロードバランシング(load balancing)を遂行する。
本明細書で使用した用語は、特定の実施形態を説明するための目的であり、本発明の思想を制限しようとするものではない。本明細書で使用したように、文脈が明確に違うことを意味しない限り、単数形は複数形を含むものとして意図する。“含む”、“含み”の用語は、本明細書で使用した場合、明示された特徴、整数、ステップ、動作、要素及び/又は部品の存在を明示するが、一つ以上の他の特徴、整数、ステップ、動作、要素、部品及び/又はグループの存在又は追加を排除しない。本明細書で使用したように、“及び/又は”の用語は一つ以上の関連する列挙項目の全ての組合せ及び特定の組合せを含む。“少なくても一つ”のような表現は、要素のリストの前にある場合、全体要素のリストを修正し、リストの個別要素を修正しない。
本明細書で使用したように、“できる”の使用は、本発明の実施形態を説明する場合、“本発明の一つ以上の実施形態”を指し示す。本明細書で使用したように、“使用”、“使用する”、“使用された”の用語は“利用”、“利用する”、“利用された”の用語に各々同義語と見なされ得る。なお、“例示的な”の用語は例示又は図面を指し示すものとして意図する。
本明細書で説明した本発明の実施形態による電子又は電気装置及び/又は他の関連する装置又は部品は、任意の適切なハードウェア、ファームウェア(例えば、応用注文型集積回路(ASIC:application−specific integrated circuit))、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの組合せを利用して具現される。例えば、このような装置の多様な部品は、一つの集積された回路(IC)チップ又は別途のICチップに形成される。なお、このような装置の多様な部品は、フレキシブル印刷回路フィルム、テープキャリアパッケージ(TCP:Tape Carrier Package)、印刷回路基板(PCB:Printed Circuit Board)上に具現されるか又は一つの基板に形成される。なお、このような装置の多様な部品は、一つ以上のコンピューティング装置で、本明細書で説明した多様な機能を遂行するためコンピュータプログラムの命令を実行し、他のシステム部品と相互作用する一つ以上のプロセッサで実行されるプロセス又はスレッドである。コンピュータプログラムの命令は、例えばランダムアクセスメモリー(RAM)のような標準メモリー装置を用いるコンピューティング装置で具現されるメモリーに格納される。また、コンピュータプログラムの命令は、例えばCD−ROM、フラッシュドライブなどのような他の非一時的なコンピュータ読み取り可能なメディアに格納される。また、当業者(通常の技術者)は多様なコンピューティング装置の機能性が一つのコンピューティング装置に結合されるか又は統合されることを認識しなければならない。また、本発明の例示的な実施形態の思想及び範囲を逸脱せずに特定のコンピューティング装置の機能性が一つ以上の他のコンピューティング装置に分散されることを認識しなければならない。
別途に定義しない場合、本明細書で使用した全ての用語(技術的及び科学的用語を含む)は、本発明が属する技術における当業者により、一般的に理解されるものと同一の意味を有する。用語は、一般的に利用される辞典で定義されるように、関連する技術及び/又は本明細書の文脈上の意味と一致する意味を有するものとして解釈されるべきであり、本明細書で明確に定義しない限り、理想的であるか形式的な感覚により解釈してはならない。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
本発明は、ストレージシステムにおいて、複数のグラフィック処理装置を利用してマシンラーニングアルゴリズムを実行するデータストレージ及び処理システムとその動作方法に有用である。
110、210 ホストサーバ
112、212 アプリケーション
114、214 OS/ファイルシステム
116 遠隔直接アクセスストレージ(rDAS:remote Direct Access Storage)ドライバー
120、220 ネットワーク
130、230 ストレージ部
131、231 シャシー(chassis)
132 イーサネット(ethernet)スイッチ
134、234 ベースボード管理制御器(BMC:baseboard management controller)
136 PCIeスイッチ
140、240 シャシーミッドプレーン(chassis midplane)
142A〜142C eSSD(ethernet Solid State Drives)
216 ストレージドライバー(遠隔直接アクセスストレージドライバー)
232 外部スイッチ(イーサネットスイッチ)
236 内部スイッチ(PCIeスイッチ)
242、242A〜242B ドライブ
244、360 プロセッサ
246 メモリー
250、250A〜250B、350 U.2 グラフィック処理装置(GPU)
352 コネクター
354 イーサネットインターフェース
356 PCIeインターフェース
358 システム管理バス(SMBus)インターフェース
362 DRAM
364 不揮発性メモリー(NVM)
366 電源供給器/電源調節器
500 能力テーブル
620 アルゴリズム

Claims (20)

  1. ホストサーバ及びストレージ部を備えるデータストレージ及び処理システムであって、
    前記ストレージ部は、
    ドライブメモリー及びドライブプロセッサを含むドライブと、
    前記ホストサーバと前記ドライブメモリーとの間でデータを伝送し受信するために前記ホストサーバを前記ドライブに連結させる外部スイッチと、
    グラフィック処理装置と、を含み、
    前記ドライブプロセッサは、処理命令及びデータを前記ドライブメモリーから前記グラフィック処理装置に伝送し、
    前記グラフィック処理装置は、前記処理命令に従ってデータを処理して結果データを生成することを特徴とするデータストレージ及び処理システム。
  2. 前記グラフィック処理装置は、U.2コネクターを含み、前記U.2コネクターを介して前記ドライブに連結され、前記U.2コネクターを介して前記処理命令及びデータを受信することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  3. 前記グラフィック処理装置は、前記結果データを前記ドライブプロセッサに伝送し、
    前記ドライブプロセッサは、前記ドライブメモリーに前記結果データを格納することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  4. 前記グラフィック処理装置は、前記外部スイッチに連結され、前記外部スイッチを利用して前記結果データを前記ホストサーバに伝送することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  5. 前記グラフィック処理装置は、前記処理命令に従ってデータの処理を完了した後、状態メッセージを前記ドライブプロセッサに伝送することを特徴とする請求項4に記載のデータストレージ及び処理システム。
  6. 前記ホストサーバは、トリガー命令を前記ドライブプロセッサに伝送し、
    前記ドライブプロセッサは、前記トリガー命令に応答し、実行時に前記処理命令及びデータを前記グラフィック処理装置に伝送する過程を含むデータ処理アルゴリズムを実行することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  7. 前記ドライブは、能力テーブルを含み、
    前記ドライブプロセッサは、前記ドライブメモリーに格納されたデータチャンク及び前記データチャンクに適用される変換を識別し、前記グラフィック処理装置が前記変換を遂行可能なことを示す前記能力テーブルから前記グラフィック処理装置のアドレスを検索し、前記データチャンクを前記グラフィック処理装置のアドレスに伝送することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  8. 前記ストレージ部は、前記グラフィック処理装置の能力を判別し、前記グラフィック処理装置の能力に基づいて前記能力テーブルをアップデートするベースボード管理制御器、を更に含むことを特徴とする請求項7に記載のデータストレージ及び処理システム。
  9. 前記ストレージ部は、各ドライブが別途の能力テーブルを有する複数のドライブと、複数のグラフィック処理装置と、を含み、
    前記ベースボード管理制御器は、前記複数のドライブの各ドライブの各能力テーブルをアップデートすることを特徴とする請求項8に記載のデータストレージ及び処理システム。
  10. 前記ベースボード管理制御器及び前記グラフィック処理装置は、NVMe−MI(Non Volatile Memory express−Management Interface)のプロトコルを用いて通信し、
    前記ベースボード管理制御器は、前記NVMe−MIの識別コマンドを利用することで、前記グラフィック処理装置の能力を判別することを特徴とする請求項8に記載のデータストレージ及び処理システム。
  11. 前記ストレージ部は、複数のグラフィック処理装置を含み、
    前記ベースボード管理制御器は、前記複数のグラフィック処理装置の各グラフィック処理装置に対する負荷を判別し、前記複数のグラフィック処理装置の各グラフィック処理装置に対する負荷に基づいて前記能力テーブルをアップデートすることを特徴とする請求項8に記載のデータストレージ及び処理システム。
  12. 前記外部スイッチは、イーサネット(登録商標)スイッチであり、
    前記ドライブは、イーサネット(登録商標)ソリッドステートドライブであることを特徴とする請求項1に記載のデータストレージ及び処理システム。
  13. 前記ホストサーバは、遠隔直接アクセスストレージプロトコルを用いて前記ストレージ部と通信することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  14. 前記ストレージ部は、シャシー及びベースボード管理制御器を更に含み、
    前記グラフィック処理装置は、現場交換可能な装置であり、
    前記ベースボード管理制御器は,前記グラフィック処理装置が前記シャシーに挿入されることに対応してプラグイン(plug−in)イベントを感知することを特徴とする請求項1に記載のデータストレージ及び処理システム。
  15. ドライブプロセッサ及びドライブメモリーを含むドライブとグラフィック処理装置とを備えるデータストレージ及び処理システムの動作方法であって、
    前記ドライブプロセッサが、
    ホストサーバからデータを受信するステップと、
    前記データを前記ドライブメモリーに格納するステップと、
    トリガーを感知するステップと、
    前記トリガーに応答し、前記ドライブメモリーに格納されたデータチャンク及び前記データチャンクに適用する変換を識別するアルゴリズムを実行するステップと、
    前記変換を遂行する装置に対応するアドレスに対する能力テーブルを検索するステップと、
    前記データチャンク及び前記データチャンクを処理する処理命令を前記グラフィック処理装置のアドレスに伝送するステップと、を含むことを特徴とする方法。
  16. 前記グラフィック処理装置が
    前記データチャンク及び前記処理命令を受信するステップと
    前記処理命令に従って前記データチャンクを処理して結果データを生成するステップと、を更に含むことを特徴とする請求項15に記載の方法。
  17. 前記グラフィック処理装置が、前記結果データを前記ドライブプロセッサに伝送するステップと、
    前記ドライブプロセッサが、前記結果データを前記ドライブメモリーに格納するステップと、を更に含むことを特徴とする請求項16に記載の方法。
  18. 前記データストレージ及び処理システムは、ベースボード管理制御器を更に備え、
    前記ベースボード管理制御器が
    前記グラフィック処理装置の能力を感知するステップと、
    前記グラフィック処理装置の能力に基づいて前記能力テーブルをアップデートするステップと、を更に含むことを特徴とする請求項15に記載の方法。
  19. 前記データストレージ及び処理システムは、各ドライブが能力テーブルを含む複数のドライブを含み、
    前記ベースボード管理制御器が、前記グラフィック処理装置の能力に基づいて前記複数のドライブの各ドライブの各能力テーブルをアップデートするステップと、を含むことを特徴とする請求項18に記載の方法。
  20. ドライブプロセッサ及びドライブメモリーを含むドライブとグラフィック処理装置とを備えるデータストレージ及び処理システムであって、
    ホストサーバからデータを受信する手段と、
    前記データを前記ドライブメモリーに格納する手段と、
    トリガーを感知する手段と、
    前記トリガーに応答し、前記ドライブメモリーに格納されたデータチャンク及び前記データチャンクに適用する変換を識別するアルゴリズムを実行する手段と、
    前記変換を遂行する装置に対応するアドレスに対する能力テーブルを検索する手段と、
    前記データチャンク及び前記データチャンクを処理する処理命令を前記グラフィック処理装置のアドレスに伝送する手段と、
    前記処理命令に従って前記データチャンクを処理して結果データを生成し、前記結果データを前記ホストサーバに伝送する手段と、
    現場交換可能なグラフィック処理装置のプラグインイベントを感知し、前記現場交換可能なグラフィック処理装置の能力を判別し、前記現場交換可能なグラフィック処理装置の能力に基づき前記プラグインイベントの感知に応答して前記能力テーブルをアップデートする手段と、を含むことを特徴とするデータストレージ及び処理システム。

JP2018088873A 2017-05-24 2018-05-02 マシンラーニングを実行するデータストレージ及び処理システムとその動作方法 Active JP6975095B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762510728P 2017-05-24 2017-05-24
US62/510,728 2017-05-24
US15/672,223 2017-08-08
US15/672,223 US10417733B2 (en) 2017-05-24 2017-08-08 System and method for machine learning with NVMe-of ethernet SSD chassis with embedded GPU in SSD form factor

Publications (3)

Publication Number Publication Date
JP2018198054A true JP2018198054A (ja) 2018-12-13
JP2018198054A5 JP2018198054A5 (ja) 2021-06-17
JP6975095B2 JP6975095B2 (ja) 2021-12-01

Family

ID=64401700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018088873A Active JP6975095B2 (ja) 2017-05-24 2018-05-02 マシンラーニングを実行するデータストレージ及び処理システムとその動作方法

Country Status (5)

Country Link
US (1) US10417733B2 (ja)
JP (1) JP6975095B2 (ja)
KR (1) KR102333445B1 (ja)
CN (1) CN108959135B (ja)
TW (1) TWI737904B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US10180924B2 (en) 2017-05-08 2019-01-15 Liqid Inc. Peer-to-peer communication for graphics processing units
US11573900B2 (en) 2019-09-11 2023-02-07 Intel Corporation Proactive data prefetch with applied quality of service
US10996942B1 (en) * 2020-01-21 2021-05-04 Dell Products L.P. System and method for graphics processing unit firmware updates
CN111221762B (zh) * 2020-02-25 2021-05-25 深圳市春盛海科技有限公司 图像控制器及图像系统
US11977915B2 (en) 2020-12-15 2024-05-07 Western Digital Technologies, Inc. Non-volatile memory with intelligent compute task distribution

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110295967A1 (en) * 2010-05-28 2011-12-01 Drc Computer Corporation Accelerator System For Remote Data Storage
US20110292058A1 (en) * 2010-05-29 2011-12-01 Herr Adam W Non-volatile storage for graphics hardware
US20140129753A1 (en) * 2012-11-06 2014-05-08 Ocz Technology Group Inc. Integrated storage/processing devices, systems and methods for performing big data analytics
US20140176583A1 (en) * 2012-12-20 2014-06-26 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines
WO2016185542A1 (ja) * 2015-05-18 2016-11-24 株式会社日立製作所 計算機システム、アクセラレータ及びデータベースの処理方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US9158574B2 (en) * 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
US20050237329A1 (en) * 2004-04-27 2005-10-27 Nvidia Corporation GPU rendering to system memory
US7868897B2 (en) * 2006-06-30 2011-01-11 Intel Corporation Apparatus and method for memory address re-mapping of graphics data
EP2737428A4 (en) * 2011-07-27 2015-05-27 Lsi Corp PROTECTION TECHNIQUES AGAINST ILLEGAL INTERVENTION ACTS ON A STABLE MEMORY
US9423983B2 (en) * 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9483431B2 (en) 2013-04-17 2016-11-01 Apeiron Data Systems Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA)
US9430412B2 (en) 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
US8819335B1 (en) 2013-08-30 2014-08-26 NXGN Data, Inc. System and method for executing map-reduce tasks in a storage device
KR20150047785A (ko) * 2013-10-25 2015-05-06 삼성전자주식회사 서버 시스템 및 스토리지 시스템
US9317204B2 (en) 2013-11-14 2016-04-19 Sandisk Technologies Inc. System and method for I/O optimization in a multi-queued environment
US8935463B1 (en) * 2014-01-03 2015-01-13 Fastor Systems, Inc. Compute engine in a smart SSD exploiting locality of data
US9003109B1 (en) * 2014-05-29 2015-04-07 SanDisk Technologies, Inc. System and method for distributed computing in non-volatile memory
WO2015200313A1 (en) * 2014-06-23 2015-12-30 Liqid Inc. Modular switched fabric for data storage systems
US10168997B2 (en) * 2014-06-26 2019-01-01 Ngd Systems, Inc. System and method for executing native client code in a storage device
WO2016118559A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Object based memory fabric
US9811379B2 (en) * 2015-06-01 2017-11-07 Samsung Electronics Co., Ltd. Highly efficient inexact computing storage device
WO2016205975A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Apparatus and method to improve scalability of graphics processor unit (gpu) virtualization
US9916273B2 (en) 2015-07-10 2018-03-13 Microsoft Technology Licensing, Llc Sideband serial channel for PCI express peripheral devices
US20170019312A1 (en) 2015-07-17 2017-01-19 Brocade Communications Systems, Inc. Network analysis and management system
US10296232B2 (en) 2015-09-01 2019-05-21 Western Digital Technologies, Inc. Service level based control of storage systems
US10055142B1 (en) * 2015-10-13 2018-08-21 Maxlinear Asia Singapore Pte Ltd. Apparatus and method for command processing for a fast block input/output device
US10866912B2 (en) * 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110295967A1 (en) * 2010-05-28 2011-12-01 Drc Computer Corporation Accelerator System For Remote Data Storage
US20110292058A1 (en) * 2010-05-29 2011-12-01 Herr Adam W Non-volatile storage for graphics hardware
US20140129753A1 (en) * 2012-11-06 2014-05-08 Ocz Technology Group Inc. Integrated storage/processing devices, systems and methods for performing big data analytics
US20140176583A1 (en) * 2012-12-20 2014-06-26 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines
WO2016185542A1 (ja) * 2015-05-18 2016-11-24 株式会社日立製作所 計算機システム、アクセラレータ及びデータベースの処理方法

Also Published As

Publication number Publication date
TWI737904B (zh) 2021-09-01
TW201907310A (zh) 2019-02-16
JP6975095B2 (ja) 2021-12-01
US20180342039A1 (en) 2018-11-29
US10417733B2 (en) 2019-09-17
CN108959135B (zh) 2023-08-08
KR102333445B1 (ko) 2021-12-02
CN108959135A (zh) 2018-12-07
KR20180128825A (ko) 2018-12-04

Similar Documents

Publication Publication Date Title
JP6975095B2 (ja) マシンラーニングを実行するデータストレージ及び処理システムとその動作方法
US10621138B2 (en) Network communications using pooled memory in rack-scale architecture
US9507619B2 (en) Virtualizing a host USB adapter
US10372639B2 (en) System and method to avoid SMBus address conflicts via a baseboard management controller
US10341264B2 (en) Technologies for scalable packet reception and transmission
US10289424B2 (en) System and method for loading and populating system inventory data in an event driven model
US9319313B2 (en) System and method of forwarding IPMI message packets based on logical unit number (LUN)
TWI414947B (zh) 在包含多個處理節點之計算系統上載入一程式之方法、電腦可讀媒體及平行計算系統
WO2016138657A1 (en) Techniques for storing or accessing key-value item
CN108415779A (zh) 用于通过主机结构接口的队列管理的技术
CN114238183A (zh) 实现Virtio设备的系统、方法和介质
CN113703913A (zh) 设备测试方法及装置
CN108564170B (zh) 一种基于noc的可重构神经网络运算方法和电路
JP2020113256A (ja) メモリシステム及びデータ処理システム
US11509562B1 (en) System and method for a system level data sharding analysis of information handling systems
US10776011B2 (en) System and method for accessing a storage device
US20230205448A1 (en) System and method for a local level data sharding analysis of information handling systems
TW201524153A (zh) 電腦系統及指令轉送方法
CN117667827A (zh) 任务处理方法及异构计算系统
CN116506377A (zh) 应用于数据处理器的数据处理方法、系统、设备及介质
CN114090324A (zh) 虚拟桌面的性能检测方法、装置及电子设备和存储介质
CN117555650A (zh) 虚拟机间通信的方法、装置、电子设备及存储介质
CN111400341A (zh) 运算方法、装置及相关产品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210426

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211105

R150 Certificate of patent or registration of utility model

Ref document number: 6975095

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150