IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特許7462028分散ストレージシステム及びデータ処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-27
(45)【発行日】2024-04-04
(54)【発明の名称】分散ストレージシステム及びデータ処理方法
(51)【国際特許分類】
   G06F 16/27 20190101AFI20240328BHJP
   G06F 3/06 20060101ALI20240328BHJP
【FI】
G06F16/27
G06F3/06 301K
G06F3/06 301G
【請求項の数】 10
(21)【出願番号】P 2022511266
(86)(22)【出願日】2020-05-07
(65)【公表番号】
(43)【公表日】2022-10-25
(86)【国際出願番号】 CN2020088871
(87)【国際公開番号】W WO2021031619
(87)【国際公開日】2021-02-25
【審査請求日】2022-02-21
(31)【優先権主張番号】201910779723.9
(32)【優先日】2019-08-22
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201911109237.2
(32)【優先日】2019-11-13
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リィウ,ジンジョォン
(72)【発明者】
【氏名】ジャン,ホォンドォン
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】国際公開第2019/147708(WO,A1)
【文献】米国特許出願公開第2019/0121889(US,A1)
【文献】国際公開第2018/164782(WO,A1)
【文献】米国特許出願公開第2019/0065410(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
複数のストレージデバイスと、管理装置とを含む分散ストレージシステムであって、
前記複数のストレージデバイスのうち第1のストレージデバイスは、第1のプロセッサと、第1のハードディスクと、第1のAI装置とを含み、前記第1のAI装置は、高速相互接続ネットワークを通じて前記第1のプロセッサと通信し、
前記管理装置は、第1のジョブ要求を受信し、前記第1のジョブ要求に基づいて訓練対象のデータセットの分布を決定するように構成され、前記データセットはサービスデータを含み、前記サービスデータが前記第1のストレージデバイスに分布していると決定したとき、第1の演算要求を前記第1のストレージデバイスに送信するように構成され、前記第1の演算要求は、前記サービスデータに対してAI演算を実行するように、前記第1のAI装置に要求するために使用され、
前記第1のプロセッサは、前記サービスデータを受信し、前記サービスデータを前記第1のハードディスクに記憶するように構成され、
前記第1のAI装置は、前記サービスデータを取得するために、データ取得要求を前記第1のプロセッサに送信し、前記サービスデータに対してAI演算を実行するように構成され、
前記データ取得要求は、第3のデータ取得要求を含み、
前記第1のプロセッサは、前記第3のデータ取得要求に応じて、前記サービスデータのメタデータを前記第1のAI装置に送信するように構成され、前記メタデータは、前記サービスデータのアドレスを示すために使用され、
前記第1のAI装置は、前記サービスデータが前記複数のストレージデバイスのうち第2のストレージデバイスに位置することを前記メタデータが示すとき、第2のデータアクセス要求を前記第2のストレージデバイスに送信するように構成され、前記第2のデータアクセス要求は、リモートダイレクトメモリアクセス要求であり、前記第2のデータアクセス要求は、前記メタデータを含み、前記第2のデータアクセス要求に応じて、前記第2のストレージデバイスにより送信された前記サービスデータを受信するように構成される、システム。
【請求項2】
前記複数のストレージデバイスのうち第2のストレージデバイスは、第2のネットワークを通じて前記サービスデータを前記第1のストレージデバイスに伝送するように構成され、
前記第2のストレージデバイスは、第1のネットワークを通じてAIパラメータを前記第1のストレージデバイスに伝送するように更に構成され、前記AIパラメータは、前記サービスデータに対してAI演算を実行するために使用される、請求項1に記載のシステム。
【請求項3】
前記第2のストレージデバイスは、前記第1のネットワークを通じて他のサービスデータを前記第1のストレージデバイスに伝送するように更に構成され、
前記第2のストレージデバイスは、前記第2のネットワークを通じて他のAIパラメータを伝送するように更に構成され、前記他のAIパラメータは、前記他のサービスデータに対してAI演算を実行するために使用される、請求項2に記載のシステム。
【請求項4】
前記第1の演算要求を前記第1のストレージデバイス内の前記第1のAI装置に送信する前に、前記管理装置は、前記第1のストレージデバイスの動作状態が指定の条件を満たすと決定するように更に構成される、請求項に記載のシステム。
【請求項5】
前記データセットは、他のサービスデータを更に含み、
前記管理装置は、前記他のサービスデータが前記複数のストレージデバイスのうち第2のストレージデバイスに分布していると決定したとき、前記第2のストレージデバイスの動作状態を更に決定し、前記第2のストレージデバイスの前記動作状態が前記指定の条件を満たさないとき、第2の演算要求を前記第1のストレージデバイスに送信するように更に構成され、前記第1のストレージデバイスと前記第2のストレージデバイスとの間の距離は、指定の距離閾値未満であり、
前記第1のAI装置は、前記第2の演算要求に基づいて前記第2のストレージデバイスから前記他のサービスデータを取得し、第2の演算結果を取得するために、前記他のサービスデータに対してAI演算を実行するように更に構成される、請求項に記載のシステム。
【請求項6】
データ処理方法であって、
当該方法は、分散ストレージシステムに適用され、前記分散ストレージシステムは、複数のストレージデバイスと、管理装置とを含み、前記複数のストレージデバイスのうち第1のストレージデバイスは、第1のプロセッサと、第1のハードディスクと、第1のAI装置とを含み、前記第1のAI装置は、高速相互接続ネットワークを通じて前記第1のプロセッサと通信し、当該方法は、
前記管理装置により、第1のジョブ要求を受信し、前記第1のジョブ要求に基づいて訓練対象のデータセットの分布を決定するステップであり、前記データセットはサービスデータを含む、ステップと、
前記サービスデータが前記第1のストレージデバイスに分布していると決定したとき、第1の演算要求を前記第1のストレージデバイスに送信するステップであり、前記第1の演算要求は、前記サービスデータに対してAI演算を実行するように、前記第1のAI装置に要求するために使用される、ステップと、
前記第1のプロセッサにより、前記サービスデータを受信し、前記サービスデータを前記第1のハードディスクに記憶するステップと、
前記第1のAI装置により、前記サービスデータを取得するために、データ取得要求を前記第1のプロセッサに送信し、前記サービスデータに対してAI演算を実行するステップと
を含み、
前記データ取得要求は、第3のデータ取得要求を含み、
前記第1のプロセッサにより、前記サービスデータを取得することは、
前記第1のプロセッサにより、前記第3のデータ取得要求に応じて、前記サービスデータのメタデータを前記第1のAI装置に送信することであり、前記メタデータは、前記サービスデータのアドレスを示すために使用される、ことと、
前記サービスデータが前記複数のストレージデバイスのうち第2のストレージデバイスに位置することを前記メタデータが示すとき、前記第1のAI装置により、第2のデータアクセス要求を前記第2のストレージデバイスに送信することであり、前記第2のデータアクセス要求は、リモートダイレクトメモリアクセス要求であり、前記第2のデータアクセス要求は、前記メタデータを含む、ことと、
前記第2のデータアクセス要求に応じて、前記第2のストレージデバイスにより送信された前記サービスデータを受信することと
を含む、方法。
【請求項7】
当該方法は、
前記第2のストレージデバイスにより、第2のネットワークを通じて前記サービスデータを前記第1のストレージデバイスに伝送するステップと、
第1のネットワークを通じてAIパラメータを前記第1のストレージデバイスに伝送するステップであり、前記AIパラメータは、前記サービスデータに対してAI演算を実行するために使用される、ステップと
を更に含む、請求項に記載の方法。
【請求項8】
当該方法は、
前記複数のストレージデバイスのうち第2のストレージデバイスにより、前記第1のネットワークを通じて他のサービスデータを前記第1のストレージデバイスに伝送するステップと、
前記第2のネットワークを通じて他のAIパラメータを伝送するステップであり、前記他のAIパラメータは、前記他のサービスデータに対してAI演算を実行するために使用される、ステップと
を更に含む、請求項に記載の方法。
【請求項9】
第1の演算要求を前記第1のストレージデバイス内の前記第1のAI装置に送信する前に、当該方法は、
前記管理装置により、前記第1のストレージデバイスの動作状態が指定の条件を満たすと決定するステップを更に含む、請求項に記載の方法。
【請求項10】
前記データセットは、他のサービスデータを更に含み、当該方法は、
前記他のサービスデータが前記複数のストレージデバイスのうち第2のストレージデバイスに分布していると決定したとき、前記管理装置により、前記第2のストレージデバイスの動作状態を更に決定し、前記第2のストレージデバイスの前記動作状態が前記指定の条件を満たさないとき、第2の演算要求を前記第1のストレージデバイスに送信するステップであり、前記第1のストレージデバイスと前記第2のストレージデバイスとの間の距離は、指定の距離閾値未満である、ステップと、
前記第1のAI装置により、前記第2の演算要求に基づいて前記第2のストレージデバイスから前記他のサービスデータを取得し、第2の演算結果を取得するために、前記他のサービスデータに対してAI演算を実行するステップと
を更に含む、請求項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
この出願は、2019年8月22日に出願された「STORAGE DEVICE, AI CHIP, STORAGE SYSTEM, AND AI COMPUTING METHOD」という名称の中国特許出願第201910779723.9号に対する優先権を主張し、この中国特許出願は、2019年11月13日に出願された「STORAGE DEVICE, DISTRIBUTED STORAGE SYSTEM, AND DATA PROCESSING METHOD」という名称の中国特許出願第201911109237.2号に対する優先権を主張し、これらの全内容を参照により援用する。
【0002】
[技術分野]
この出願は、ストレージ技術の分野に関し、特に、ストレージデバイス、分散ストレージシステム及びデータ処理方法に関する。
【背景技術】
【0003】
ストレージ技術及び人工知能(artificial intelligence, AI)技術の発展によって、ストレージデバイスは、AI演算のためのサービスデータを記憶する可能性がある。サービスデータは、例えば、顔認識モデルを訓練するために使用される顔画像セット、音声認識モデルを訓練するために使用されるオーディオサンプルセット、又は意味認識モデルを訓練するために使用されるサンプルテキストのような、モデル訓練に使用されるサンプルセットでもよい。
【0004】
顔画像セットが例として使用される。大量の演算対象のデータのため、単一のサーバは演算要件を満たすことができない。したがって、現在、主流のアーキテクチャは、複数のデバイスを有するクラスタアーキテクチャである。このアーキテクチャは、AIクラスタと、ストレージクラスタと、スイッチとを含む。AIクラスタは、AI演算のための複数のAIサーバを含む。ストレージクラスタは、サービスデータを記憶するための複数のストレージデバイスを含む。スイッチは、AIサーバとストレージデバイスとの間でサービスデータを転送するように構成される。AI演算プロセスにおいて、AIサーバは、伝送制御プロトコル/インターネットプロトコル(transmission control protocol/internet protocol, TCP/IP)プロトコルに従って、ストレージデバイスへのリモートネットワーク接続を確立する。AIサーバがAI演算に必要なサービスデータを取得する必要があるとき、AIサーバは、スイッチを通じてデータ取得要求をストレージデバイスに送信する。データ取得要求を受信した後に、ストレージデバイスは、スイッチを通じて記憶されたサービスデータをAIサーバに送信する。次いで、AIサーバは、AI演算のためにサービスデータをメモリにロードする。
【0005】
上記のアーキテクチャでは、サービスデータはネットワークを通じてストレージデバイスからスイッチに送信され、次いで、ネットワークを通じてスイッチからAIサーバに送信される必要があり、それにより、AIサーバはAI演算を実行するためのサービスデータを取得できる。したがって、AI演算プロセスにおいてサービスデータを取得するための経路は非常に長い。その結果、サービスデータは非常に低速で且つ低効率で取得される。
【発明の概要】
【0006】
この出願の実施形態は、関連技術においてサービスデータが非常に低速で且つ低効率で取得されるという技術的問題を解決するための、ストレージデバイス、分散ストレージシステム及びデータ処理方法を提供する。技術的解決策は以下の通りである。
【0007】
第1の態様によれば、プロセッサと、ハードディスクと、AI装置とを含むストレージデバイスが提供される。AI装置は、高速相互接続ネットワークを通じてプロセッサと通信する。プロセッサは、サービスデータを受信し、サービスデータをハードディスクに記憶するように構成される。AI装置は、サービスデータを取得するために、データ取得要求をプロセッサに送信し、サービスデータに対してAI演算を実行するように構成される。
【0008】
AI装置は、この実施形態において提供されるストレージデバイス内に配置され、それにより、ストレージデバイスは、AI装置を通じてAI演算能力を提供し、ストレージデバイス内のプロセッサ及びハードディスクを通じてサービスデータ記憶能力を提供でき、それにより、記憶及びAI演算能力の集約を実現する。AI演算が実行される必要があるとき、サービスデータは、外部ネットワークを通じて転送される必要なく、高速相互接続ネットワークを通じてストレージデバイス内で伝送される。したがって、サービスデータを伝送するための経路が大幅に短縮され、サービスデータが近くでロードでき、それにより、ロードを加速させる。任意選択で、データ取得要求は、第1のデータ取得要求を含む。プロセッサは、第1のデータ取得要求に応じて、ハードディスクからサービスデータを取得し、サービスデータをAI装置に送信するように構成される。このように、AI装置は、近くでサービスデータを取得する。ストレージデバイスは、AI装置と、プロセッサと、ハードディスクとを含む。したがって、AI装置がサービスデータを取得する必要があるとき、AI装置は、データ取得要求をプロセッサに送信する。ストレージデバイス内のプロセッサは、ハードディスクからサービスデータを取得し、サービスデータをAIプロセッサに送信し、それにより、AIプロセッサは、サービスデータをローカルで取得できる。これは、ネットワークを通じてリモートストレージデバイスからサービスデータを要求することにより引き起こされる通信オーバヘッドを回避し、サービスデータを取得する遅延を短縮する。
【0009】
任意選択で、データ取得要求は、第2のデータ取得要求を含む。プロセッサは、第2のデータ取得要求に応じて、サービスデータのメタデータをAI装置に送信するように構成される。メタデータは、サービスデータのアドレスを示すために使用される。AI装置は、サービスデータがストレージデバイスに位置することをメタデータが示すとき、第1のデータアクセス要求をハードディスクに送信するように構成される。第1のデータアクセス要求は、メタデータを含む。ハードディスクは、メタデータに基づいてサービスデータを取得し、DMAを通じてサービスデータをAI装置に書き込むように構成される。このように、AI装置とハードディスクとの間のDMAパススルーが実現できる。AI装置とハードディスクとの間にDMAパスが確立され、それにより、AI装置及びハードディスクは、DMAパスを通じて互いにサービスデータを迅速に交換できる。これは、AI装置によるサービスデータのロードを加速させ、AI装置により同時に処理できるサービスデータの量を増加させ、AI装置の間でAIパラメータを伝送するための通信オーバヘッドを低減し、AI訓練を加速させる。
【0010】
任意選択で、データ取得要求は、第3のデータ取得要求を含む。プロセッサは、第3のデータ取得要求に応じて、サービスデータのメタデータをAI装置に送信するように構成される。メタデータは、サービスデータのアドレスを示すために使用される。AI装置は、サービスデータが他のストレージデバイスに位置することをメタデータが示すとき、第2のデータアクセス要求を他のストレージデバイスに送信するように構成される。第2のデータアクセス要求は、メタデータを含む。この任意選択の方式では、AI装置内のAIメモリと他のストレージデバイスとの間のRDMAパススルーが実現され、AIメモリ及び他のストレージデバイスは、互いにサービスデータを迅速に交換する。これは、AI訓練を加速させる。
【0011】
任意選択で、ストレージデバイスは、メモリを更に含む。プロセッサは、分割を通じてメモリからメモリ空間のセグメントを取得し、AI装置のためにメモリ空間のセグメントを予約するように更に構成される。この任意選択の方式では、AI装置は、AI演算を実行するためにストレージ装置内のメモリを借用でき、それにより、AI装置の利用可能なメモリ空間が拡張され、AI装置は、より大きいメモリ内でAI演算を実行できる。これは、AI演算効率を改善する。
【0012】
任意選択で、AI装置は、AIプロセッサと、AIメモリとを含む。AIプロセッサは、AIメモリの利用可能な容量が予め設定された閾値に到達したとき、メモリ適用要求をプロセッサに送信するように構成される。AIメモリの利用可能な容量は、指定のバッチサイズにより決定される。メモリ適用要求は、分割を通じてメモリからメモリ空間のセグメントを取得し、AI装置のためにメモリ空間のセグメントを予約するように、プロセッサに要求するために使用される。この任意選択の方式では、AIプロセッサは、メモリのメモリ空間を使用することにより訓練を実行してもよい。したがって、より大きい利用可能なメモリ空間がAI訓練のためのバッチサイズを増加させることができるので、1つのバッチでAI装置により処理できるサービスデータの量が増加でき、異なるAI装置の間でAIパラメータを交換するための通信オーバヘッドが低減でき、AI訓練が加速できる。実験は、AI訓練がAIメモリのみを通じて実行された場合、最大バッチサイズが256に設定されることを示している。しかし、この方式では、バッチサイズは32000に設定されてもよい。したがって、バッチサイズはかなり増加する。
【0013】
関連技術では、ストレージデバイス内のメモリは固定の容量を有しており、その結果、サービスデータを記憶するための十分なメモリが頻繁に存在しない。しかし、この任意選択の方式では、ストレージ装置は、サービスデータを読み取る/書き込むためにAI装置内のAIメモリを借用でき、それにより、ストレージ装置の利用可能なメモリ空間が拡張され、ストレージ装置は、より大きいメモリ内にサービスデータを記憶できる。これは、サービスデータの読み取り/書き込み時間を短縮し、サービスデータの読み取り/書き込み効率を改善する。
【0014】
任意選択で、AI装置は、AIプロセッサを含む。AIプロセッサは、演算タスクを少なくとも2つのサブタスクに分割し、少なくとも2つのサブタスクのうち第1のサブタスクをプロセッサに送信するように構成される。プロセッサは、第1のサブタスクを実行し、演算結果をAIプロセッサに送信するように更に構成される。この任意選択の方式では、AIプロセッサの演算能力及びプロセッサの演算能力が協働され、AIプロセッサは、AIプロセッサの演算能力を増加させるために、ストレージデバイス内のプロセッサの演算能力を借用できる。これは、AIプロセッサにより処理されるAI演算を加速させる。
【0015】
任意選択で、AIプロセッサは、演算タスクを少なくとも2つのサブタスクに分割する前に、AIプロセッサの演算能力が不十分であると決定するように更に構成される。この任意選択の方式では、AIプロセッサの演算能力が不十分であると決定したとき、AIプロセッサは、AI演算を処理するためにプロセッサの演算能力を借用できる。これは、AI訓練プロセスにおける不十分な演算能力リソースのボトルネックを打破する。
【0016】
任意選択で、プロセッサは、演算タスクを少なくとも2つのサブタスクに分割し、少なくとも2つのサブタスクのうち第2のサブタスクをAIプロセッサに送信するように構成される。AIプロセッサは、第2のサブタスクを実行し、演算結果をAIプロセッサに送信するように更に構成される。この任意選択の方式では、AIプロセッサの演算能力及びプロセッサの演算能力が協働され、ストレージデバイス内のプロセッサは、ストレージデバイス内のプロセッサの演算能力を増加させるために、AIプロセッサの演算能力を借用できる。これは、ストレージデバイス内のプロセッサにより実行されるサービスデータの読み取り/書き込みを加速させる。
【0017】
プロセッサは、第1のサブタスクを実行し、演算結果をAIプロセッサに送信するように更に構成される。
【0018】
任意選択で、AIメモリは、メモリファブリック(memory fabric)を通じてストレージデバイス内のメモリと通信する。
【0019】
任意選択で、AIメモリは、memory fabricを通じて他のストレージデバイス内のAIメモリと通信する。
【0020】
任意選択で、ストレージデバイス内のメモリは、memory fabricを通じて他のストレージデバイス内のメモリと通信する。
【0021】
任意選択で、ストレージデバイス内のメモリは、memory fabricを通じて他のストレージデバイス内のAIメモリと通信する。
【0022】
1つのストレージデバイスにおけるメモリとAIメモリとの統一スケジューリング、異なるストレージデバイスにおけるメモリの統一スケジューリング、及び異なるストレージデバイスにおけるAIメモリの統一スケジューリングが、memory fabricを通じて実現できる。これは、ストレージシステムのメモリリソーススケジューリング及び使用効率を改善する。
【0023】
任意選択で、AI装置は、高速シリアルコンピュータ拡張バス標準(peripheral component interconnect express, 略称PCIe)バスを通じてプロセッサと通信する。
【0024】
任意選択で、プロセッサは、メモリの利用可能な容量が予め設定された閾値に到達したとき、メモリ適用要求をAIプロセッサに送信するように構成される。メモリ適用要求は、分割を通じてAIメモリからメモリ空間のセグメントを取得し、プロセッサのためにメモリ空間のセグメントを予約するように、プロセッサに要求するために使用される。
【0025】
任意選択で、AI装置は、AI演算能力ユニットを更に含む。AI演算能力ユニットは、AIメモリからサービスデータを取得し、AI演算を実行するように具体的に構成される。任意選択で、AIプロセッサは、分割を通じてAIメモリからメモリ空間のセグメントを取得し、ストレージデバイス内のプロセッサのためにメモリ空間のセグメントを予約するように更に構成される。
【0026】
任意選択で、階層化されたAIパラメータのキャッシングを実行するために、AIメモリは第1レベルとして機能し、メモリは第2レベルとして機能する。第1レベルの優先度は、第2レベルの優先度よりも高い。このように、メモリ及びAIメモリは階層化され、AIパラメータは、AIメモリに優先的にキャッシュされる。
【0027】
第2の態様によれば、複数のストレージデバイスを含む分散ストレージシステムが提供される。複数のストレージデバイスは、第1のストレージデバイスを含む。第1のストレージデバイスは、第1のプロセッサと、第1のハードディスクと、第1のAI装置とを含む。第1のAI装置は、高速相互接続ネットワークを通じて第1のプロセッサと通信する。第1のプロセッサは、サービスデータを受信し、サービスデータを第1のハードディスクに記憶するように構成される。第1のAI装置は、サービスデータを取得するために、データ取得要求を第1のプロセッサに送信し、サービスデータに対してAI演算を実行するように構成される。
【0028】
この実施形態において提供される分散ストレージシステムでは、AIパラメータ及びサービスデータに基づいてAI演算を協働して実行するために、異なるストレージデバイス内の2つのAI装置が、第1のネットワークを通じて互いにAIパラメータを交換し、異なるストレージデバイス内の2つのストレージ装置が、第2のネットワークを通じて互いにサービスデータを交換する。複数のストレージデバイスの記憶能力及びAI演算能力が集約され、それにより、システムの全体の記憶能力及びAI演算能力が増加できる。
【0029】
任意選択で、第2のストレージデバイスは、第2のネットワークを通じてサービスデータを第1のストレージデバイスに伝送するように構成される。第2のストレージデバイスは、第1のネットワークを通じてAIパラメータを第1のストレージデバイスに伝送するように更に構成される。AIパラメータは、サービスデータに対してAI演算を実行するために使用される。第1のネットワーク及び第2のネットワークが配備され、それにより、AIパラメータは第1のネットワークを通じて伝送でき、サービスデータは第2のネットワークを通じて伝送できる。したがって、システムにとって、AIパラメータを転送するために使用されるネットワークリソースが、他のデータを転送するために使用されるネットワークリソースから分離でき、それにより、ストレージデバイスの元のストレージネットワークリソースがAIパラメータ伝送中に占有されることを防止し、それにより、ストレージデバイスのネットワーク帯域幅がAI演算プロセスにおいて占有されるとき、ストレージデバイスのネットワーク伝送性能が劣化することを防止する。さらに、第1のネットワークは、AI関連サービスデータを転送することに専用にすることができる。したがって、ネットワークに基づいて、既存のサービスデータセンタ又はストレージデバイスクラスタのネットワーキングへの影響が回避できる。
【0030】
任意選択で、第2のストレージデバイスは、第1のネットワークを通じて他のサービスデータを第1のストレージデバイスに伝送するように更に構成される。任意選択で、第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値未満であるとき、他のサービスデータは、第1のネットワークを通じて第1のストレージデバイスと第2のストレージデバイスとの間で伝送される。この任意選択の方式では、ストレージ装置の間のサービスデータ交換のための新たな経路が提供される。第2のネットワークのネットワークリソースが不十分であるとき、第1のネットワークは、サービスデータを交換するために使用され、第1のネットワークは、サービスデータを転送するために新たに追加された経路として使用されてもよい。したがって、サービスデータは、第2のネットワーク又は第1のネットワークを通じて伝送できる。これは、サービスデータを伝送するためのネットワーク帯域幅を増加させ、サービスデータを交換する遅延を短縮し、サービスデータ交換を加速させ、AI演算を加速させる。
【0031】
任意選択で、第2のストレージデバイスは、第2のネットワークを通じて他のAIパラメータを伝送するように更に構成される。他のAIパラメータは、他のサービスデータに対してAI演算を実行するために使用される。
【0032】
任意選択で、第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値未満であるとき、他のAIパラメータは、第2のネットワークを通じて第1のAI装置と第2のAI装置との間で伝送される。この任意選択の方式では、AI装置の間のAIパラメータ交換のための新たな経路が提供される。第1のネットワークのネットワークリソースが不十分であるとき、第2のネットワークは、AIパラメータを交換するために使用される。これは、AIパラメータを伝送するためのネットワーク帯域幅を増加させ、AIパラメータを交換する遅延を短縮し、AIパラメータ交換を加速させ、AI演算を加速させる。
【0033】
任意選択で、第1のAI装置は、第1のAIプロセッサと、第1のAIメモリとを含み、第2のストレージ装置は、第2のプロセッサを含み、第2のAI装置は、第2のAIメモリを含む。第1のAIプロセッサは、第2のネットワークのネットワークリソース要求を第2のプロセッサに送信し、メモリRDMAアクセス要求を第2のプロセッサに送信するように構成される。第1のAIプロセッサは、第1のメモリから他のサービスデータを読み取り、第2のネットワークを通じて他のサービスデータを第2のAI装置に送信するように構成される。第2のAI装置は、他のサービスデータを第2のメモリに書き込む。この任意選択の方式では、第1のストレージデバイスと第2のストレージデバイスとの間のメモリパススルーが実現され、第1のストレージデバイス内のメモリ及び第2のストレージデバイス内のメモリは、RDMAを通じて互いにサービスデータを交換できる。したがって、第1のプロセッサ及び第2のプロセッサの処理オーバヘッドが回避でき、サービスデータは、第1のメモリから第2のメモリに直接伝送される。これは、サービスデータ交換を加速させ、サービスデータ交換効率を改善する。
【0034】
任意選択で、システムは、管理装置を更に含む。管理装置は、第1のジョブ要求を受信し、第1のジョブ要求に基づいて訓練対象のデータセットの分布を決定するように構成され、データセットはサービスデータを含み、サービスデータが第1のストレージデバイスに分布していると決定したとき、第1の演算要求を第1のストレージデバイスに送信するように構成される。第1の演算要求は、サービスデータに対してAI演算を実行するように、第1のAI装置に要求するために使用される。この任意選択の方式では、管理装置は、AI演算を提供するために、サービスデータが位置する第1のストレージデバイスを選択し、第1のストレージデバイスは、AI演算を実行するために、第1のストレージデバイス内の第1のストレージ装置を通じてサービスデータを取得してもよい。これは、サービスデータがストレージデバイスの間で移動することを防止し、サービスデータを取得するために他のストレージデバイスにアクセスすることにより引き起こされる遅延を回避し、サービスデータを取得する遅延を短縮し、AI演算を加速させる。
【0035】
任意選択で、第1のAI装置は、第1の演算要求に基づいて、第1のストレージデバイス内の第1のストレージ装置からサービスデータを取得し、第1の演算結果を取得するために、サービスデータに対してAI演算を実行するように構成される。任意選択で、第1の演算要求を第1のストレージデバイス内の第1のAI装置に送信する前に、管理装置は、第1のストレージデバイスの動作状態が指定の条件を満たすと決定するように更に構成される。この任意選択の方式では、選択された第1のストレージデバイスが現在占有されておらず、AI演算能力を提供できることが確保でき、それにより、占有されたストレージデバイスがAI演算を実行するために選択されるので、デバイスオーバヘッドが過度に高く、AI演算タスクが時間内に完了できないという問題を回避する。
【0036】
任意選択で、データセットは、他のサービスデータを更に含む。管理装置は、他のサービスデータが複数のストレージデバイスのうち第2のストレージデバイスに分布していると決定したとき、第2のストレージデバイスの動作状態を更に決定し、第2のストレージデバイスの動作状態が指定の条件を満たさないとき、第2の演算要求を第1のストレージデバイスに送信するように更に構成される。第1のストレージデバイスと第2のストレージデバイスとの間の距離は、指定の距離閾値未満である。第1のAI装置は、第2の演算要求に基づいて第2のストレージデバイスから他のサービスデータを取得し、第2の演算結果を取得するために、他のサービスデータに対してAI演算を実行するように更に構成される。この任意選択の方式では、サービスデータが位置するストレージデバイスが占有されている場合、管理装置は、AI演算を提供するために、サービスデータに近いストレージ装置を選択できる。これは、サービスデータ伝送距離を短縮し、ノード間のサービスデータ移動を低減する。
【0037】
任意選択で、第2のストレージデバイスの動作状態が指定の条件を満たすか否かを決定する前に、管理装置は、第2のジョブ要求を受信し、第2のジョブ要求に基づいて、訓練対象の第2のデータセットが第2のストレージデバイスに分布していると決定するように更に構成される。
【0038】
第3の態様によれば、データ処理方法が提供される。当該方法は分散ストレージシステムに適用される。分散ストレージシステムは、複数のストレージデバイスを含む。複数のストレージデバイスは、第1のストレージデバイスを含む。当該方法は、第2の態様のいずれかの実現方式において提供される機能を実現するために使用される。
【0039】
第4の態様によれば、データ処理方法が提供される。当該方法は、ストレージデバイスに適用される。ストレージデバイスは、プロセッサと、ハードディスクと、AI装置とを含む。AI装置は、高速相互接続ネットワークを通じてプロセッサと通信する。当該方法は、第1の態様のいずれかの実現方式において提供される機能を実現するために使用される。
【0040】
第5の態様によれば、コンピュータ読み取り可能記憶媒体が提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令はストレージデバイスにより読み取られ、それにより、ストレージデバイスは、第4の態様又は第4の態様のいずれか任意選択の方式において提供されるデータ処理方法を実行することが可能になる。
【0041】
第6の態様によれば、コンピュータ読み取り可能記憶媒体が提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令は分散ストレージシステムにより読み取られ、それにより、分散ストレージシステムは、第3の態様又は第3の態様のいずれか任意選択の方式において提供されるデータ処理方法を実行することが可能になる。
【0042】
第7の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品がストレージデバイス上で実行されたとき、ストレージデバイスは、第4の態様又は第4の態様のいずれか任意選択の方式において提供されるデータ処理方法を実行することが可能になる。
【0043】
第8の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品が分散ストレージシステム上で実行されたとき、分散ストレージシステムは、第3の態様又は第3の態様のいずれか任意選択の方式において提供されるデータ処理方法を実行することが可能になる。
【図面の簡単な説明】
【0044】
図1】この出願の実施形態による分散ストレージシステムのアーキテクチャ図である。
図2】この出願の実施形態によるストレージデバイスの概略構造図である。
図3】この出願の実施形態によるストレージデバイスの概略構造図である。
図4】この出願の実施形態による分散ストレージシステムのアーキテクチャ図である。
図5】この出願の実施形態によるストレージデバイスの概略構造図である。
図6】この出願の実施形態によるストレージデバイスの概略構造図である。
図7】この出願の実施形態によるデータ処理方法のフローチャートである。
図8】この出願の実施形態によるデータ処理方法のフローチャートである。
図9】この出願の実施形態によるデータ処理方法のフローチャートである。
図10】この出願の実施形態によるデータ伝送手順の概略図である。
図11】この出願の実施形態によるデータ伝送手順の概略図である。
図12】この出願の実施形態によるデータ処理方法のフローチャートである。
図13】この出願の実施形態によるデータ伝送手順の概略図である。
図14】この出願の実施形態によるデータ処理方法のフローチャートである。
図15】この出願の実施形態によるデータ処理方法のフローチャートである。
図16】この出願の実施形態によるデータ処理方法のフローチャートである。
図17】この出願の実施形態によるデータ処理方法のフローチャートである。
図18】この出願の実施形態によるデータ処理方法のフローチャートである。
図19】この出願の実施形態によるデータ処理方法のフローチャートである。
図20】この出願の実施形態によるデータ伝送手順の概略図である。
図21】この出願の実施形態によるデータ処理方法のフローチャートである。
図22】この出願の実施形態によるデータ処理方法のフローチャートである。
図23】この出願の実施形態によるデータ伝送手順の概略図である。
図24】この出願の実施形態によるデータ処理方法のフローチャートである。
図25】この出願の実施形態によるデータ伝送手順の概略図である。
図26】この出願の実施形態によるデータ処理方法のフローチャートである。
図27】この出願の実施形態によるデータ伝送手順の概略図である。
図28】この出願の実施形態によるデータ処理方法のフローチャートである。
図29】この出願の実施形態によるデータ伝送手順の概略図である。
図30】この出願の実施形態によるデータ処理方法のフローチャートである。
図31】この出願の実施形態によるデータ処理方法のフローチャートである。
図32】この出願の実施形態によるデータ処理方法のフローチャートである。
図33】この出願の実施形態によるデータ処理方法の論理アーキテクチャ図である。
【発明を実施するための形態】
【0045】
以下に、この出願において関連する用語について説明する。
【0046】
人工知能(artificial intelligence, AI)は、環境を感知し、知識を取得し、知識を使用することにより最適な結果を取得するために、コンピュータ又はコンピュータにより制御される機械を通じて人間の知能をシミュレーション、拡大及び拡張するための理論、方法、技術及び応用システムである。言い換えると、人工知能は、知能の本質に基づいて、人間の知能のものと同じように反応できる新たな知能機械を作り出すコンピュータ科学の総合的な技術である。人工知能は、様々な知能機械の設計原理及び実現方式を研究することであり、それにより、機械が知覚、推論及び意思決定機能を有する。
【0047】
一般的に、AIの実現方式は、2つの段階、すなわち、訓練及び推論を含む。訓練は、ニューラルネットワークモデルが大量のラベル付きサンプルを使用することにより訓練を通じて取得され、それにより、ニューラルネットワークモデルが特定の機能を有することができることを意味する。推論はまた、予測又は推論とも呼ばれ、訓練を通じて取得されたニューラルネットワークモデルが、新たなサービスデータに基づいて様々な結論を推論するために使用されることを意味する。
【0048】
高速シリアルコンピュータ拡張バス規格(peripheral component interconnect express, 略称PCIe)バスは、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect, 略称PCI)バスに基づいて開発されたローカルバスであり、プロセッサ及び少なくとも1つの周辺デバイスを接続するために使用される。PCIeバス標準に準拠した周辺デバイスは、PCIeデバイスと呼ばれる。PCIeバスは、少なくとも1つのPCIeインタフェースを有する。各PCIeインタフェースは、物理的な形式のスロットでもよい。各PCIeインタフェースは、1つのPCIeデバイスに接続するように構成される。PCIeバス上の各PCIeデバイスは、シリアル相互接続方式を使用し、PCIeバス上の異なるPCIeデバイスは、ポイントツーポイント方式でサービスデータ伝送を実行してもよい。PCIeプロトコルは、一般的に、PCIプロトコル及びPCIデバイスに関連する技術と互換性がある。
【0049】
華為キャッシュコヒーレンスシステム(Huawei cache-coherent system, HCCS)は、複数のポート(socket)の間でサービスデータの一貫性を維持するためのプロトコル標準である。
【0050】
AIパラメータは、AI訓練を通じて決定されたAIモデルにおけるパラメータである。言い換えると、AIモデルは関数として考えられてもよく、AIパラメータは関数における係数として考えられてもよい。例えば、AIモデルがニューラルネットワークである場合、AIパラメータは、ニューラルネットワークにおける畳み込みカーネルの重みでもよい。他の例として、AIモデルがサポートベクタマシンである場合、AIパラメータは、サポートベクタマシンにおけるサポートベクタでもよい。他の例として、AIモデルが線形回帰モデル又はロジスティック回帰モデルである場合、AIパラメータは、線形回帰モデル又はロジスティック回帰モデルにおける係数でもよい。明らかに、列挙されたAIモデルは単なる例である。代替として、AIモデルは、他のタイプのモデル、例えば、決定木モデル、ランダムフォレストモデル、信頼ネットワーク、強化学習モデル、転移学習モデル若しくは帰納的学習モデル、又はこれらの組み合わせでもよい。対応して、代替として、AIパラメータは、他のタイプのモデルにおけるパラメータでもよい。AIパラメータの特定のタイプ及びAIモデルの特定のタイプは、この出願の実施形態では限定されない。
【0051】
AIパラメータ調整プロセスは、AI演算にとって重要である。具体的には、AI演算プロセスにおいて、通常では、データセット内のサービスデータがAIモデルに入力される。AIモデルは、予測結果を取得するために、AIパラメータに基づいてサービスデータに対して推論及び予測を実行する。AIパラメータは、予測結果と実際の結果との間の誤差に基づいて調整され、それにより、調整されたAIパラメータに基づいて推論及び予測が次回に実行されるとき、誤差は低減される。AIパラメータ調整は周期的に実行され、それにより、AIパラメータは調整を通じて次第に正確になることができる。訓練が終了したとき、正確なパラメータを含むAIモデルは、正確な推論及び予測を実現するために、例えば、顔画像に対して顔認識を正確に実行するために使用されてもよい。この出願のいくつかの実施形態は、AIパラメータ調整を大幅に加速させることができる。例えば、図17における以下の実施形態を実行することにより、AI演算能力を大幅に増加させるために、ストレージデバイス内のプロセッサの演算能力が借用されてもよい。したがって、AIパラメータ演算は、より強いAI演算能力を通じて加速できる。他の例として、図26における以下の実施形態を実行することにより、AI演算のための利用可能なネットワークリソースの量を大幅に増加させるために、バックエンドストレージネットワークリソース(すなわち、第2のネットワークのネットワークリソース)が借用されてもよい。したがって、AIパラメータ伝送がより多くのネットワークリソースを通じて加速でき、それによりAIパラメータ調整及び更新を加速させる。
【0052】
ダイレクトメモリアクセス(direct memory access, 略称DMA)は、メモリと周辺デバイスとの間でデータを伝送するための技術である。DMAを通じて、周辺デバイスは、中央処理装置(central processing unit, CPU)の参加を必要とせずに、直接、データをメモリに書き込んでもよく、或いは、メモリ内のデータにアクセスしてもよい。例えば、周辺デバイスは、メモリ空間のためにプロセッサに申請してもよく、プロセッサは、メモリバッファ(buffer)を周辺デバイスに割り当てる。次いで、周辺デバイスは、データをメモリバッファに直接書き込んでもよく、或いは、メモリバッファからデータを直接読み取ってもよい。ここで言及される周辺デバイスは、DMA関連プロトコルにおいてDMAコントローラと呼ばれてもよい。
【0053】
この出願の図9における実施形態では、ハードディスクが上記の周辺デバイスでもよく、AIメモリが上記のメモリでもよい。ハードディスクは、ストレージデバイス内のプロセッサ及びAIプロセッサの参加を必要とせずに、DMAを通じてAIメモリに直接アクセスしてもよく、それにより、AIメモリのアクセスを加速させる。
【0054】
リモートダイレクトメモリアクセス(remote direct memory access, 略称RDMA)は、1つのデバイス内のメモリから他のデバイス内のメモリにデータを直接伝送するための技術である。RDMAはメッセージキューベースのポイントツーポイント通信を提供する。各アプリケーションは、CPUの介入を回避するために、メッセージキューを通じてアプリケーションのメッセージを取得してもよい。RDMA関連プロトコルでは、RDMA操作(RDMA verb)を実行する装置は、リモートダイレクトメモリアクセス・ネットワークインタフェースコントローラ(RDMA network interface controller, 略称RNIC)と呼ばれてもよい。RDMA操作は、記憶操作(memory verb)と、メッセージ操作(messaging verb)とを含んでもよい。記憶操作は、データを伝送するために使用されてもよい。記憶操作は、RDMA書き込み操作と、RDMA読み取り操作と、アトミック操作とを含む。例えば、RDMA書き込み操作のプロセスは以下を含んでもよい。宛先デバイスのCPUは、メモリ領域の仮想アドレス及びメモリ領域の許可情報を、送信元デバイスのCPUに送信する。送信元デバイスのCPUは、書き込み対象のデータを送信元デバイスのメモリ領域に記憶する。送信元デバイスのCPUは、送信元デバイスのメモリ領域の仮想アドレス、宛先装置のメモリ領域の仮想アドレス、及び宛先デバイスのメモリ領域の許可情報に基づいて、RDMA書き込み命令を生成し、RDMA書き込み命令をRNICの伝送キューに追加する。次いで、送信元デバイスは、ドアベル機構を通じて、伝送キュー内の命令を実行するようにRNICに通知する。次に、RNICは、RDMA書き込み命令を取得するために、伝送キューから命令を読み取り、RDMA書き込み命令に従ってRDMA書き込み操作を実行する。RDMA読み取り操作は以下を含んでもよい。宛先デバイスのCPUは、データをメモリ領域に記憶し、宛先デバイスのメモリ領域の仮想アドレス及びメモリ領域の許可情報を送信元デバイスのCPUに送信する。送信元デバイスのCPUは、仮想アドレス及び許可情報を受信し、送信元デバイスのメモリ領域の仮想アドレス、宛先デバイスのメモリ領域の仮想アドレス、及び宛先デバイスのメモリ領域の許可情報に基づいて、RDMA読み取り命令を生成し、RDMA読み取り命令を伝送キューに追加する。次いで、送信元デバイスは、ドアベル機構を通じて、伝送キュー内の命令を実行するようにRNICに通知する。RNICは、RDMA読み取り命令を取得するために伝送キューから命令を読み取り、RDMA書き込み命令に従ってRDMA読み取り操作を実行する。メッセージ操作は、メッセージを制御するために使用されてもよい。メッセージ操作は、RDMA送信操作と、RDMA受信操作とを含んでもよい。
【0055】
この出願の図26における実施形態では、AI装置内の第1のネットワークインタフェース(AIパラメータネットワークインタフェースと呼ばれてもよい)はRNICでもよく、RDMAを通じて他のストレージデバイス内のAIメモリにアクセスしてもよく、或いは、RDMAを通じてAIパラメータを他のストレージデバイス内のAIメモリに書き込んでもよい。この出願の図22における実施形態では、ストレージ装置内の第2のネットワークインタフェース(バックエンドスイッチングインタフェースと呼ばれてもよい)はRNICでもよく、RDMAを通じて他のストレージデバイス内のメモリにアクセスしてもよく、或いは、RDMAを通じてサービスデータを他のストレージデバイス内のメモリに書き込んでもよい。
【0056】
この出願において提供される分散ストレージシステムについて、例を使用することにより以下に説明する。
【0057】
図1は、この出願の実施形態による分散ストレージシステムのアーキテクチャ図である。分散ストレージシステム1は、複数のストレージデバイスを含む。複数のストレージデバイスは、第1のストレージデバイス10を含む。
【0058】
第1のストレージデバイス10は、サービスデータを記憶し、AI演算を処理するように構成される。第1のストレージデバイス10は、第1のストレージ装置100と、第1のAI装置101とを含む。第1のAI装置101は、第1のストレージデバイス10内に配置される。第1のストレージ装置100は、第1のプロセッサ1001と、第1のハードディスク1002とを含んでもよい。
【0059】
第1のAI装置101は、高速相互接続ネットワークを通じて第1のプロセッサ1001と通信する。
【0060】
第1のプロセッサ1001は、サービスデータを受信し、サービスデータを第1のハードディスク1002に記憶するように構成される。
【0061】
第1のAI装置101は、サービスデータを取得するために、データ取得要求を第1のプロセッサ1001に送信し、サービスデータに対してAI演算を実行するように構成される。
【0062】
任意選択で、データ取得要求は、第1のデータ取得要求を含む。
【0063】
第1のプロセッサ1001は、第1のデータ取得要求に応じて、第1のハードディスク1002からサービスデータを取得し、サービスデータを第1のAI装置101に送信するように構成される。
【0064】
任意選択で、データ取得要求は、第2のデータ取得要求を含む。
【0065】
第1のプロセッサ1001は、第2のデータ取得要求に応じて、サービスデータのメタデータを第1のAI装置101に送信するように構成される。メタデータは、サービスデータのアドレスを示すために使用される。
【0066】
第1のAI装置101は、サービスデータが第1のストレージデバイスに位置することをメタデータが示すとき、第1のデータアクセス要求を第1のハードディスク1002に送信するように構成される。第1のデータアクセス要求は、メタデータを含む。
【0067】
第1のハードディスク1002は、メタデータに基づいてサービスデータを取得し、DMAを通じてサービスデータを第1のAI装置101に書き込むように構成される。
【0068】
任意選択で、複数のストレージデバイスは、第2のストレージデバイス11を更に含む。第1のストレージデバイス10及び第2のストレージデバイス11は、2つの異なるストレージデバイスである。第1のストレージデバイス10は、ネットワークを通じて第2のストレージデバイス11と通信する。
【0069】
第2のストレージデバイス11は、サービスデータを記憶し、AI演算を処理するように構成される。第2のストレージデバイス11は、第2のストレージ装置110と、第2のAI装置111とを含む。第2のAI装置111は、第2のストレージデバイス11内に配置される。
【0070】
第2のストレージデバイス11は、第2のプロセッサ1101と、第2のハードディスク1102とを含む。第2のAI装置は、高速相互接続ネットワークを通じて第2のプロセッサ1101と通信する。
【0071】
第2のプロセッサ1101は、サービスデータを受信し、サービスデータを第2のハードディスク1102に記憶するように構成される。
【0072】
第2のAI装置は、サービスデータを取得するために、データ取得要求を第2のプロセッサ1101に送信し、サービスデータに対してAI演算を実行するように構成される。
【0073】
任意選択で、データ取得要求は、第3のデータ取得要求を含む。
【0074】
第1のプロセッサ1001は、第3のデータ取得要求に応じて、サービスデータのメタデータを第1のAI装置101に送信するように構成される。メタデータは、サービスデータのアドレスを示すために使用される。
【0075】
第1のAI装置101は、サービスデータが複数のストレージデバイスのうち第2のストレージデバイス11に位置することをメタデータが示すとき、第2のデータアクセス要求を第2のストレージデバイス11に送信するように構成され、第2のデータアクセス要求は、メタデータを含み、第2のデータアクセス要求に応じて第2のストレージデバイス11により送信されたサービスデータを受信するように構成される。
【0076】
任意選択で、第2のストレージデバイス11は、第2のネットワーク12を通じてサービスデータを第1のストレージデバイス10に伝送するように構成される。第2のストレージデバイス11は、第1のネットワーク13を通じてAIパラメータを第1のストレージデバイス10に伝送するように更に構成される。AIパラメータは、サービスデータに対してAI演算を実行するために使用される。
【0077】
第1のネットワーク13は、AIパラメータネットワークと呼ばれてもよく、第1のストレージデバイス10と第2のストレージデバイス11との間でAIパラメータを伝送するために使用される。ルータ及びスイッチのような1つ以上のネットワークデバイスが、第1のネットワーク13に配置されてもよい。具体的には、ネットワークデバイス13は、第1のAI装置101及び第2のAI装置111に別々に接続されてもよく、AIパラメータは、ネットワークデバイスを通じて第1のAI装置101と第2のAI装置111との間で伝送される。例えば、ネットワークデバイスは、第1のAI装置101内の第1のネットワークインタフェース及び第2のAI装置111内の第1のネットワークインタフェースに接続されてもよい。
【0078】
第2のネットワーク12は、バックエンドストレージネットワークと呼ばれてもよく、第1のストレージデバイス10と第2のストレージデバイス11との間でサービスデータを伝送するために使用される。ルータ及びスイッチのような1つ以上のネットワークデバイスが、第2のネットワーク12に配置されてもよい。具体的には、ネットワークデバイスは、第1のストレージ装置100及び第2のストレージ装置110に接続されてもよく、サービスデータは、ネットワークデバイスを通じて第1のストレージ装置100と第2のストレージ装置110との間で伝送される。例えば、ネットワークデバイスは、第1のストレージ装置100内の第2のネットワークインタフェース及び第2のストレージ装置110内の第2のネットワークインタフェースに接続されてもよい。
【0079】
第1のネットワーク13及び第2のネットワーク12が配備され、それにより、AIパラメータは第1のネットワーク13を通じて伝送でき、サービスデータは第2のネットワーク12を通じて伝送できる。したがって、ストレージシステム1にとって、AIパラメータを転送するために使用されるネットワークリソースが、他のデータを転送するために使用されるネットワークリソースから分離でき、それにより、ストレージデバイスの元のストレージネットワークリソースがAIパラメータ伝送中に占有されることを防止し、それにより、ストレージデバイスのネットワーク帯域幅がAI演算プロセスにおいて占有されるとき、ストレージデバイスのネットワーク伝送性能が劣化することを防止する。さらに、第1のネットワーク13は、AI関連サービスデータを転送することに専用にすることができる。したがって、ネットワークに基づいて、既存のサービスデータセンタ又はストレージデバイスクラスタのネットワーキングへの影響が回避できる。
【0080】
任意選択で、分散ストレージシステム1のために、第3のネットワーク14が更に配備されてもよい。第3のネットワーク14は、サービスネットワークと呼ばれてもよい。第1のストレージデバイス10は、第3のネットワーク14を通じて第2のストレージデバイス11と通信してもよい。第3のネットワーク14は、1つ以上のネットワークデバイスを含んでもよい。ネットワークデバイスは、第1のストレージ装置100内のサービスインタフェース及び第2のストレージ装置110内のサービスインタフェースに別々に接続されてもよい。この実施形態では、分散ストレージシステム1内の第1のストレージデバイス10及び第2のストレージデバイス11は、単に説明のための例として使用されていることが理解されるべきである。当業者は、分散ストレージシステム1がより多くの或いはより少ないストレージデバイスを含んでもよいことを習得し得る。例えば、分散ストレージシステム1は、第1のストレージデバイス10及び第2のストレージデバイス11のみを含んでもよい。代替として、分散ストレージシステム1は、数十個若しくは数百個のストレージデバイス又はそれ以上のストレージデバイスを含んでもよい。この場合、分散ストレージシステム1は、第1のストレージデバイス10及び第2のストレージデバイス11に加えて、他のストレージデバイスを更に含む。ストレージデバイスの量は、この実施形態では限定されない。特に、AI演算能力に対する要件が増加するにつれて、この実施形態におけるストレージシステム1の規模がそれに従って拡大されてもよい。例えば、ストレージシステム1は、数百万個のストレージデバイスを含んでもよく、それにより、システム1の全体の演算能力は、百万レベル以上に拡張される。
【0081】
さらに、第1のストレージデバイス10は、一般的に、分散ストレージシステム1内の複数のストレージデバイスのうちいずれか1つでもよく、第2のストレージデバイス11は、一般的に、第1のストレージデバイス10以外の分散ストレージシステム1内の複数のストレージデバイスのうちいずれか1つでもよい。この実施形態では、第1のストレージデバイス10及び第2のストレージデバイス11は、単に説明のための例として使用される。
【0082】
この実施形態において提供される分散ストレージシステムでは、AIパラメータ及びサービスデータに基づいてAI演算を協働して実行するために、異なるストレージデバイス内の2つのAI装置が、第1のネットワークを通じて互いにAIパラメータを交換し、異なるストレージデバイス内の2つのストレージ装置が、第2のネットワークを通じて互いにサービスデータを交換する。複数のストレージデバイスの記憶能力及びAI演算能力が集約され、それにより、システムの全体の記憶能力及びAI演算能力が増加できる。第1のネットワークは、PCIe高速相互接続ネットワーク、fibre channel(FC)、SCSI、イーサネット、RDMA、memory fabric等でもよい。第2のネットワークは、PCIe高速相互接続ネットワーク、FC、SCSI、イーサネット、RDMA、memory fabric等でもよい。
【0083】
任意選択で、第2のストレージデバイス110は、第1のネットワーク13を通じて他のサービスデータを第1のストレージデバイス10に伝送するように更に構成される。第2のストレージデバイス110は、第2のネットワーク12を通じて他のAIパラメータを伝送するように更に構成される。他のAIパラメータは、他のサービスデータに対してAI演算を実行するために使用される。
【0084】
例えば、第2のネットワークのリソースの量が指定のストレージネットワークリソース閾値未満であるとき、他のサービスデータは、第1のネットワーク13を通じて第1のストレージ装置100と第2のストレージ装置110との間で伝送されてもよい。具体的には、第1のストレージ装置100は、第1のプロセッサと、第1のメモリとを含み、第2のストレージ装置110は、第2のプロセッサと、第2のメモリとを含む。第1のAI装置101は、第1のAIプロセッサと、第1のAIメモリとを含む。第1のAIプロセッサは、第1のネットワークのネットワークリソース要求を第2のAIプロセッサに送信し、メモリRDMAアクセス要求を第2のプロセッサに送信する。第1のAI装置101は、第1のメモリから他のサービスデータを読み取り、第1のネットワーク13を通じて他のサービスデータを第2のAI装置111に送信する。第2のAI装置111は、他のサービスデータを第2のメモリに書き込む。
【0085】
任意選択で、第1のネットワークのリソースの量が指定のAIネットワークリソース閾値未満であるとき、他のAIパラメータは、第2のネットワーク12を通じて第1のAI装置101と第2のAI装置111との間で伝送される。具体的には、第1のAIプロセッサは、第2のネットワークのネットワークリソース要求を第2のプロセッサに送信する。第1のAIプロセッサは、第1のAIメモリから他のAIパラメータを取得し、RDMAを通じて、第2のネットワーク12を通じて他のAIパラメータを第2のAIメモリに伝送するように構成される。
【0086】
任意選択で、システム1は、管理装置を更に含む。管理装置はソフトウェアモジュールである。機能的には、管理装置は、分散ストレージシステム1内の全てのストレージデバイスを管理し、例えば、AI演算を処理するためにストレージデバイスをスケジューリングするように構成される。管理装置は、独立したデバイスでもよく、例えば、ホスト、サーバ、パーソナルコンピュータ又は他のデバイスでもよい。代替として、管理装置は、いずれかのストレージデバイスに位置してもよい。管理装置が独立したデバイスであるとき、管理装置は、ネットワークを通じてシステム内のいずれかのストレージデバイスと通信してもよい。
【0087】
どのように管理装置がストレージデバイスをスケジューリングするかを説明するための具体的な例が以下に使用される。第1のジョブ要求を受信したとき、管理装置は、第1のジョブ要求に基づいて訓練対象のデータセットの分布を決定する。データセット内のサービスデータが第1のストレージデバイス10に分布していると決定したとき、管理装置は、第1の演算要求を第1のストレージデバイス10内の第1のAI装置101に送信する。第1のAI装置101は、第1の演算要求に基づいて第1のストレージデバイス10からサービスデータを取得し、第1の演算結果を取得するためにサービスデータに対してAI演算を実行するように構成される。これはデータ近傍のAI演算方式であり、具体的には、データセットが位置するストレージデバイス内のAI装置が、データセットに対してAI演算を実行するために優先的に選択される。これは、ネットワーク間のデータ伝送を或る程度回避し、ネットワークリソースを節約できる。いくつかの場合、データセットが位置するストレージデバイスの動作状態が悪くなる可能性があり、その結果、当該ストレージデバイスがAI演算タスクを受信することは適切ではないことが理解されるべきである。したがって、この実施形態では、第1の演算要求を第1のストレージデバイス10内の第1のAI装置101に送信する前に、管理装置は、第1のストレージデバイス10の動作状態が指定の条件を満たすと決定するように更に構成される。
【0088】
したがって、第1のストレージデバイス10の動作状態が所定の条件を満たさないとき、第1のストレージデバイス10からの距離が指定の距離閾値未満であるストレージデバイス、例えば、第2のストレージデバイス11が、AI演算を実行するために選択されてもよい。
【0089】
いくつかの実施形態では、訓練対象のデータセットは、他のサービスデータを更に含んでもよい。
【0090】
管理装置は、他のサービスデータが複数のストレージデバイスのうち第2のストレージデバイス11に分布していると決定したとき、第2のストレージデバイス11の動作状態を更に決定し、第2のストレージデバイス11の動作状態が指定の条件を満たさないとき、第2の演算要求を第1のストレージデバイス10に送信するように更に構成される。第1のストレージデバイス10と第2のストレージデバイス11との間の距離は、指定の距離閾値未満である。
【0091】
第1のAI装置101は、第2の演算要求に基づいて第2のストレージデバイス11から他のサービスデータを取得し、第2の演算結果を取得するために、他のサービスデータに対してAI演算を実行するように更に構成される。
【0092】
いくつかの可能な実施形態では、ストレージシステム1は、ホスト(図1に図示せず)を更に含んでもよい。ホストは、AI演算を実行するために、第1のストレージデバイス10及び第2のストレージデバイス11と協働するように構成される。ホストはAIサーバでもよく、或いは、アプリケーションサーバでもよい。AIサーバは、AI演算タスクを実行するように構成される。例えば、AIサーバは、モデル訓練又はサービスデータ処理を実行してもよい。AIサーバの動作プロセスにおいて、AIサーバは、第1のストレージデバイス10及び/又は第2のストレージデバイス11とモデルパラメータを交換してもよい。アプリケーションサーバは、端末からモデル訓練命令又はサービスデータ処理命令を受信し、AI演算プロセスにおいて、リソーススケジューリング、AIアルゴリズム記憶、AIアルゴリズム更新等を実行してもよい。ホストは、CPUのような汎用プロセッサを通じてAI演算能力を提供してもよく、或いは、グラフィックス処理ユニット(英語:graphics processing unit, 略称GPU)、ニューラル処理ユニット(英語:neural-network processing unit, 略称NPU)、テンソル処理ユニット(英語:tensor processing unit, 略称TPU)又はフィールドプログラマブルゲートアレイ(英語:field-programmable gate array, FPGA)のようなプロセッサを通じてAI演算能力を提供してもよい。ホストは、物理デバイスでもよく、或いは、クラウドプラットフォームからリースされるエラスティッククラウドサーバのような仮想デバイスでもよい。AI演算プロセスにおいて、第1のストレージデバイス10及び第2のストレージデバイス11が一次演算タスクを引き受けてもよく、ホストが二次演算タスクを引き受けるか、或いは、ホストが一次演算タスクを引き受け、第1のストレージデバイス10及び第2のストレージデバイス11が二次演算タスクを引き受ける。
【0093】
いくつかの可能な実施形態では、第2のネットワーク12は、内部ネットワークデバイス及び外部ネットワークデバイスを含んでもよい。
【0094】
内部ネットワークデバイスは、第1のストレージデバイス10及び/又は第2のストレージデバイス11内に配置されてもよい。内部ネットワークデバイスは、高速相互接続ネットワークを通じて第1のストレージデバイス10及び/又は第2のストレージデバイス11のコンポーネントに接続されてもよい。内部ネットワークデバイスはバスでもよく、これは、具体的にはシリアルインタフェースバス、例えば、PCIEバス、HCCSバス、イーサネット、IB及びFCのうちいずれか1つでもよい。第1のストレージデバイス10及び/又は第2のストレージデバイス11は、サービスデータ及びAIパラメータを保護するために、内部ネットワークデバイスを通じて記憶されたデータをバックアップしてもよい。
【0095】
外部ネットワークデバイスは、第1のストレージデバイス10及び第2のストレージデバイス11外に配置されてもよい。外部ネットワークデバイスは、ネットワークを通じて第1のストレージデバイス10及び第2のストレージデバイス11に接続される。外部ネットワークデバイスは、スイッチ、ルータ等でもよい。第1のストレージデバイス10及び第2のストレージデバイス11は、外部ネットワークデバイスを通じてアプリケーションのためのデータ記憶サービス、例えば、ファイル記憶サービス、オブジェクト記憶サービス又はブロック記憶サービスをそれぞれ提供してもよい。外部ネットワークデバイスは、スイッチ、ルータ等でもよい。
【0096】
いくつかの可能な実施形態では、内部ネットワークデバイス及び外部ネットワークデバイスは、第1のネットワーク13に配置されてもよい。第1のネットワークにおける内部ネットワークデバイス及び外部ネットワークデバイスは、それぞれ第2のネットワーク12における内部ネットワークデバイス及び外部ネットワークデバイスと同様である。詳細は、ここでは再び説明しない。
【0097】
いくつかの可能な実施形態では、第2のネットワーク12及び/又は第1のネットワーク13における内部ネットワークデバイス及び外部ネットワークデバイスは、全体として一緒に配備されてもよい。
【0098】
いくつかの可能な実施形態では、システム1内のストレージデバイスの量は、伸縮性の容量拡張又は伸縮性の容量縮小を実現するために、AI演算能力に関する要件に基づいて動的に増加又は低減されてもよい。具体的には、ストレージシステム1はリソースプールと考えられてもよく、ストレージデバイスはリソースプール内のリソースと考えられてもよく、リソースはAI演算能力及び記憶能力の双方を提供できる。ストレージシステム1が不十分なAI演算能力を有する場合、例えば、各AI装置の負荷が負荷閾値を超えた場合、ストレージデバイスがストレージシステム1に追加されてもよく、ストレージシステム1内の既存のストレージデバイス及び新たに追加されたストレージデバイスは、単一のストレージデバイスにおけるAI装置の容量拡張を実現して負荷を軽減するように、一緒にAI演算能力を提供する。ストレージシステム1がアイドルである場合、容量縮小を実現するために、ストレージシステム1内のストレージデバイスの量が低減されてもよい。
【0099】
この出願において提供されるストレージデバイスについて、例を使用することにより以下に説明する。
【0100】
図2は、この出願の実施形態によるストレージデバイスの概略構造図である。ストレージデバイス2は、図1に示すシステム1内の第1のストレージデバイス10でもよく、或いは、図1に示すシステム1内の第2のストレージデバイス11でもよく、或いは、明らかに、図1に図示しない他のストレージデバイスでもよい。
【0101】
図2に示すように、ストレージデバイス2は、ストレージ装置20と、AI装置21とを含む。
【0102】
ストレージ装置20は、ハードディスク201と、プロセッサ202とを含む。
【0103】
プロセッサ202は、サービスデータを受信し、サービスデータをハードディスク201に記憶するように構成される。サービスデータは、AI演算のための入力として使用されてもよい。例えば、サービスデータは、モデル訓練のために使用されるサンプルセット、又は推論及び予測のために使用されるデータセットでもよい。例えば、モデル訓練段階において、サービスデータは、サンプル画像、サンプルビデオ、サンプル音声又はサンプルテキストのうち1つ以上を含んでもよい。サンプル画像は、画像認識モデルを取得するための訓練に使用されてもよく、サンプルビデオは、ビデオ認識モデル又はターゲット分析モデルを取得するための訓練に使用されてもよく、サンプルテキストは、意味認識モデルを取得するための訓練に使用されてもよく、他も同様である。他の例として、モデル適用段階において、サービスデータは、認識対象の画像、ビデオ、音声又はテキストでもよく、これは、画像認識、顔認識、音声認識又はテキスト理解のために使用されてもよい。いくつかの実施形態では、プロセッサ202は、演算リソースを提供してもよく、ストレージ装置20は、プロセッサ202を通じてサービスデータを処理してもよい。
【0104】
ハードディスク201は、記憶空間を提供してもよい。ハードディスク201は、サービスデータを記憶するように構成される。ハードディスク201はスマートディスクでもよい。スマートディスクは、プロセッサ、メモリ及びDMAコントローラのようなコンポーネントを有する。したがって、スマートディスクは、例えば、従来のハードディスクよりも多くの機能を引き受けることができ、例えば、DMAを通じてデータを伝送できる。
【0105】
AI装置21は、サービスデータを取得するために、データ取得要求をプロセッサ202に送信し、サービスデータに対してAI演算を実行するように構成される。AI装置は、ストレージデバイス2内に配置される。AI装置21は、ストレージデバイス2のためにAI演算能力を提供する。AI装置21を動作させることにより、以下の方法の実施形態におけるAI演算方法が実行されてもよい。AI装置21は、チップ又は他の物理コンポーネントの形式でもよい。例えば、AI装置21は、ニューラルネットワークモデルを構築するように構成された訓練チップでもよく、或いは、ニューラルネットワークモデルを通じて推論を実行するように構成された推論チップでもよい。データ取得要求は、ハードディスク201に記憶されたサービスデータを取得するように要求するために使用される。
【0106】
AI装置21は、高速相互接続ネットワーク22を通じてプロセッサ202と通信する。高速相互接続ネットワーク22は、AI装置21とプロセッサ202との間のデータ通信に使用される。高速相互接続ネットワーク22は、PCIe、memory fabric、高速イーサネット、HCCS、インフィニバンド(infiniband, IB)及びファイバチャネル(fiber channel, FC)のうちいずれか1つでもよい。高速相互接続ネットワーク22はバスの形式でもよい。この場合、高速相互接続ネットワーク22はまた、高速相互接続スイッチ又は高速相互接続バスとも呼ばれてもよい。例えば、ストレージデバイス2は、高速相互接続バスを含んでもよく、AI装置21及びプロセッサ202は、高速相互接続ネットワークにアクセスするために、高速相互接続バスに接続されてもよい。いくつかの可能な実施形態では、AI装置21は、高速相互接続ネットワークインタフェースを含んでもよく、プロセッサ202は、高速相互接続ネットワークインタフェースを含んでもよい。AI装置21は、AI装置21の高速相互接続ネットワークインタフェースを通じて高速相互接続バスに接続され、プロセッサ202は、プロセッサ202の高速相互接続ネットワークインタフェースを通じて高速相互接続バスに接続される。高速相互接続ネットワークインタフェースはシリアルバスインタフェースでもよい。具体的には、高速相互接続ネットワークインタフェースは、PCIEインタフェース、HCCSインタフェース、イーサネットインタフェース、IBインタフェース及びFCインタフェースのうちいずれか1つでもよい。異なるタイプの高速相互接続ネットワークインタフェースが存在する場合、サービスデータは、異なる速度でAI装置21とプロセッサ202との間で伝送されてもよい。実験は、サービスデータロード速度が異なるタイプのインタフェースに基づいて2~10倍に増加できることを示している。さらに、ストレージデバイス2は、AI装置21の高速相互接続ネットワークインタフェースを通じて電気エネルギーをAI装置21に供給してもよい。高速相互接続バスは、単に高速相互接続ネットワーク22の例であることが理解されるべきである。高速相互接続ネットワーク22は、高速相互接続バスでなくてもよく、メモリパススルー機能を有する他のバスでもよい。高速相互接続ネットワーク22の特定のタイプは、この実施形態では限定されない。
【0107】
ストレージデバイスにおいて、高速相互接続ネットワーク22を通じて互いに通信する複数のコンポーネントが存在してもよい。例えば、ストレージデバイス内のメモリ203及びAIメモリ210は、高速相互接続ネットワーク22を通じて互いに通信してもよい。他の例として、ハードディスク201及びAIメモリ210は、高速相互接続ネットワーク22を通じて互いに通信してもよい。他の例として、ハードディスク201及びメモリ203は、高速相互接続ネットワーク22を通じて互いに通信してもよい。他の例として、ストレージデバイス内のプロセッサ202及びAIプロセッサ213は、高速相互接続ネットワーク22を通じて互いに通信してもよい。さらに、複数のメモリ203が存在する場合、異なるメモリは、高速相互接続ネットワーク22を通じて互いに通信してもよい。複数のAIメモリ210が存在する場合、異なるAIメモリは、高速相互接続ネットワーク22を通じて互いに通信してもよい。明らかに、互いに通信する上記のコンポーネントは、単に説明のための例として使用されている。高速相互接続ネットワーク22を通じて接続される全ての異なるコンポーネントは、高速相互接続ネットワーク22を通じて互いに通信してもよい。高速相互接続ネットワーク22を通じて通信を実行する実行主体は、この実施形態では限定されない。
【0108】
高速相互接続ネットワーク22を通じて通信を実行する複数の方法が存在してもよい。以下の2つの方式が説明のための例として使用される。
【0109】
方式1:通信がDMAを通じて実行される。DMAベースの通信については、図9における以下の実施形態及びDMA技術の原理の上記の説明を参照する。詳細は、ここでは再び説明しない。
【0110】
方式2:通信がメモリファブリック(memory fabric)を通じて実行される。
【0111】
図3を参照すると、ストレージデバイスは、memory fabric23を含んでもよい。memory fabric23は、高速相互接続ネットワーク22の機能と、第1のネットワークインタフェース211の機能とを統合してもよい。AIメモリ210は、memory fabric23を通じてメモリ203に接続されてもよく、AIメモリ210は、memory fabric23を通じてメモリ203と通信してもよい。さらに、memory fabric23はまた、デバイスの間でメモリの間の通信を実現してもよい。例えば、AIメモリ210はまた、memory fabric23を通じて他のストレージデバイス内のAIメモリに接続されてもよく、AIメモリ210はまた、memory fabric23を通じて他のストレージデバイス内のAIメモリと通信してもよい。他の例として、メモリ203はまた、memory fabric23を通じて他のストレージデバイス内のメモリに接続されてもよく、メモリ203はまた、memory fabric23を通じて他のストレージデバイス内のメモリと通信してもよい。AIメモリ210はまた、memory fabric23を通じて他のストレージデバイス内のメモリに接続されてもよく、AIメモリ210はまた、memory fabric23を通じて他のストレージデバイス内のメモリと通信してもよい。他の例として、メモリ203はまた、memory fabric23を通じて他のストレージデバイス内のAIメモリに接続されてもよく、メモリ203はまた、memory fabric23を通じて他のストレージデバイス内のAIメモリと通信してもよい。さらに、いくつかの実施形態では、memory fabric23は、第2のネットワークインタフェース204の機能を更に統合してもよく、或いは、ネットワーク通信を実行するように構成されたストレージデバイス内の他のコンポーネントの機能を統合してもよい。この場合、ストレージデバイス内のメモリ以外のコンポーネントは、memory fabric23を通じて互いに通信してもよい。
【0112】
memory fabric23を通じて実行される通信の方式については、いくつかの可能な実施形態では、memory fabric23を通じて互いに接続されたメモリは、メモリリソースプールを構成してもよく、対応するアドレスは、統一された方式で、メモリリソースプール内のメモリのメモリ空間に割り当てられ、それにより、メモリリソースプール内の全てのメモリのメモリ空間は、同じアドレス範囲に属する。サービスデータ又はAIパラメータがメモリリソースプール内のいずれかのメモリのいずれかのメモリ空間に書き込まれた後に、サービスデータ又はAIパラメータのメタデータは、メモリ空間のアドレスに基づいて取得されてもよく、次いで、対応するメモリ空間は、メモリ空間からサービスデータ又はAIパラメータを読み取るために、メタデータに基づいてmemory fabric23を通じてアドレス指定することを通じて取得されてもよい。アドレス指定オブジェクトは、ストレージデバイスのローカルメモリ空間でもよく、或いは、リモートストレージデバイスのメモリ空間でもよい。
【0113】
例えば、図4を参照すると、第1のメモリ、第2のメモリ、第1のAIメモリ及び第2のAIメモリは、memory fabricを通じて互いに通信してもよい。第1のメモリ、第2のメモリ、第1のAIメモリ及び第2のAIメモリは、システム1のメモリリソースプールを構成してもよい。例えば、第1のAIプロセッサ又は第1のプロセッサがAIパラメータを取得する必要があるとき、第1のAIプロセッサ又は第1のプロセッサは、AIパラメータのメタデータに基づいて、AIパラメータがメモリリソースプールに位置するメモリ空間のアドレスを決定し、memory fabricを通じてアドレス指定することを通じてメモリ空間を取得する。
【0114】
1つのストレージデバイス内でのメモリ及びAIメモリの統一スケジューリング、異なるストレージデバイス内でのメモリの統一スケジューリング、及び異なるストレージデバイス内でのAIメモリの統一スケジューリングが、memory fabricを通じて実現できる。これは、ストレージシステムのメモリリソーススケジューリング及び使用効率を改善する。
【0115】
AI装置21が高速相互接続ネットワーク22を通じてストレージ装置20と通信することは、少なくとも以下の効果をもたらしてもよい。AI演算プロセスにおいて、AI装置21がAI演算に必要なサービスデータをロードする必要があるとき、サービスデータは、高速相互接続ネットワーク22を通じてストレージ装置20からAI装置21に送信され、AI装置21内のAIメモリ210にロードできる。AI装置21がAI演算の演算結果を記憶する必要があるとき、演算結果は、高速相互接続ネットワーク22を通じてAI装置21からストレージ装置20内のハードディスク201に送信でき、それにより、演算結果がハードディスク201に記憶できる。このように、ロード経路及び記憶経路について、サービスデータは、1つ以上のネットワークリンク及び1つ以上のスイッチによる転送を通じてストレージデバイス2外に伝送される代わりに、高速相互接続ネットワーク22を通じてストレージデバイス2内で伝送される。したがって、サービスデータを伝送するための経路が大幅に短縮でき、それにより、AI装置21は、ストレージ装置20に記憶された近くのサービスデータを取得し、演算結果を近くのストレージ装置20に記憶できる。さらに、サービスデータは、TCP/IPプロトコルに従った一般的なリモートネットワークの代わりに、高速相互接続ネットワーク22に基づいて伝送される。高速相互接続ネットワーク22の伝送速度は、通常では、リモートネットワークの伝送速度よりもはるかに速く、ネットワーク通信に必要な3方向ハンドシェイクのようなネットワーク通信接続を確立する煩雑な手順が回避できる。したがって、AI装置21は、ストレージ装置20からAI演算に必要なサービスデータを迅速にロードし、AI演算の演算結果をストレージ装置20内のハードディスク201に迅速に記憶できる。実験は、サービスデータロードの各時間の間に、遅延が30%よりも多く短縮できることを示している。
【0116】
ストレージデバイス2は、1つ以上のAI装置21を含んでもよいことが理解されるべきである。AI装置21の量は、ストレージデバイス2の構造、空間又は要件に基づいて設定されてもよい。ストレージデバイス2に含まれるAI装置21の量は、この実施形態では限定されない。
【0117】
ストレージデバイス2が複数のAI装置21を含む場合、複数のAI装置21は、高速相互接続ネットワーク22を通じて互いに通信し、例えば、高速相互接続ネットワーク22を通じてAIパラメータを交換してもよい。ストレージデバイス2内の異なるAI装置21の形状及び構造は同じでもよく、或いは、実際の要件に基づいてわずかに異なってもよい。
【0118】
ストレージデバイス2は、分散制御ストレージデバイス2でもよく、或いは、集中制御ストレージデバイス2でもよい。ストレージデバイス2の形式は、ストレージサーバ、ストレージアレイ又は他の専用ストレージデバイス2でもよいが、これらに限定されない。ストレージデバイス2は、クラウド環境、エッジ環境又は端末環境で動作していてもよいが、これらに限定されない。
【0119】
ストレージ装置及びAI装置は、この実施形態において提供されるストレージデバイスに配置され、それにより、ストレージデバイスは、AI装置を通じてAI演算能力を提供し、ストレージ装置を通じてサービスデータ記憶能力を提供でき、それにより、記憶及びAI演算能力の集約を実現する。AIパラメータ及びサービスデータは、外部ネットワークを通じて転送される必要なく、高速相互接続ネットワークを通じてストレージデバイス内で伝送される。したがって、サービスデータ及びAIパラメータを伝送するための経路が大幅に短縮され、サービスデータが近くでロードでき、それにより、ロードを加速させる。さらに、AI装置は、サービスデータを処理するために、ストレージ装置の演算リソースを借用でき、それにより、AI装置の演算能力が演算能力の協働を通じて増加し、それにより、AI演算を加速させる。
【0120】
上記の実施形態では、AI装置21は、サービスデータに基づいてAI演算を実行するために、ハードディスク201からサービスデータを取得するためのデータ取得要求をプロセッサ202に送信してもよい。このように、AI装置21は、ストレージデバイスからサービスデータを取得できる。これは、ネットワークを通じてリモートストレージデバイスからサービスデータを要求することにより引き起こされる通信オーバヘッドを回避し、サービスデータを取得する遅延を短縮する。
【0121】
AI装置21は、具体的には、複数の実現方式でサービスデータを取得してもよい。対応して、AI装置により送信されるデータ取得要求の複数の場合が存在してもよく、異なる場合のデータ取得要求はわずかに異なってもよい。以下に、方式1、方式2及び方式3を説明のための例として使用する。説明を区別するために、方式1におけるデータ取得要求は第1のデータ取得要求と呼ばれ、方式2におけるデータ取得要求は第2のデータ取得要求と呼ばれ、方式3におけるデータ取得要求は第3のデータ取得要求と呼ばれる。
【0122】
方式1:ストレージデバイスは、プロセッサ202を通じてハードディスク201に記憶されたサービスデータをAI装置21に伝送してもよい。具体的には、AI装置21は、第1のデータ取得要求をプロセッサ202に送信するように更に構成される。第1のデータ取得要求は、サービスデータを取得するように要求するために使用される。プロセッサ202は、第1のデータ取得要求を受信し、第1のデータ取得要求に応じて、ハードディスク201からサービスデータを取得し、サービスデータをAI装置21に送信するように更に構成される。
【0123】
方式2:ストレージデバイスは、DMAを通じてハードディスク201に記憶されたサービスデータをAI装置21に伝送してもよい。具体的には、AI装置21は、第2のデータ取得要求をプロセッサ202に送信するように更に構成される。第2のデータ取得要求は、サービスデータを取得するように要求するために使用される。プロセッサ202は、第2のデータ取得要求を受信し、第2のデータ取得要求に応じて、サービスデータのメタデータをAI装置21に送信するように更に構成される。AI装置21は、メタデータに基づいて、サービスデータがストレージデバイスに位置するか否かを決定してもよい。サービスデータがストレージデバイスに位置することをメタデータが示すとき、AI装置21は、第1のデータアクセス要求をハードディスク201に送信する。第1のデータアクセス要求は、メタデータを含む。例えば、第1のデータアクセス要求はDMA要求でもよい。ハードディスク201は、メタデータに基づいてサービスデータを取得し、DMAを通じてサービスデータをAI装置21に書き込むように構成される。メタデータは、サービスデータのアドレスを示すために使用される。方式2では、サービスデータは、ストレージデバイスに位置する。
【0124】
ハードディスク201は、AI装置21と通信してもよい。したがって、第2のデータアクセス要求に基づく相互作用の上記の手順が実現できる。例示的な実施形態では、ハードディスク201は、高速相互接続ネットワークインタフェースを含んでもよい。ハードディスク201は、高速相互接続ネットワークインタフェースを通じてAI装置21に接続されてもよい。AI装置21は、高速相互接続ネットワークインタフェースに対応するコントローラ又はドライバを通じてハードディスク201内で読み取り/書き込みを実行してもよい。例えば、ハードディスク201の高速相互接続ネットワークインタフェースは、シリアルアタッチトSCSI(Serial Attached SCSI, SAS)インタフェースでもよい。AI装置21は、ハードディスク201内で読み取り/書き込みを実行するために、SASコントローラを通じてSASインタフェースと通信してもよい。明らかに、ハードディスク201の高速相互接続ネットワークインタフェースは、代替として、SASインタフェース以外のインタフェース、例えば、アドバンストテクノロジーアタッチメント(advanced technology attachment, ATA)インタフェース、インテグレーティドドライブエレクトロニクス(integrated drive electronics, IDE)インタフェース、FC、又はスモールコンピュータシステムインタフェース(small computer system interface, SCSI)でもよい。
【0125】
方式3:ストレージデバイスは、RDMAを通じて他のストレージデバイスに記憶されたサービスデータをAI装置21に伝送してもよい。具体的には、AI装置21は、第3のデータ取得要求をプロセッサ202に送信するように更に構成される。第3のデータ取得要求は、サービスデータを取得するように要求するために使用される。プロセッサ202は、第3のデータ取得要求を受信し、第3のデータ取得要求に応じて、サービスデータのメタデータをAI装置21に送信するように更に構成される。AI装置21は、サービスデータのメタデータに基づいて、サービスデータが他のストレージデバイスに位置するか否かを決定してもよい。サービスデータが他のストレージデバイスに位置することをメタデータが示すとき、AI装置21は、第2のデータアクセス要求を他のストレージデバイスに送信する。第2のデータアクセス要求は、メタデータを含む。例えば、第2のデータアクセス要求はRDMA要求でもよい。他のストレージデバイスは、メタデータに基づいて第2のデータアクセス要求に応じてサービスデータを取得し、RDMAを通じてサービスデータをAI装置21に書き込んでもよい。メタデータは、サービスデータのアドレスを示すために使用される。方式3では、サービスデータは、他のストレージデバイスに位置する。
【0126】
AI装置21は、AIメモリ210を含んでもよい。AIメモリ210は、AI演算能力ユニット212又はAIプロセッサ213によりちょうど使用されるか或いは周期的に使用されるAIパラメータ及び/又はサービスデータをキャッシュするように構成される。AI演算能力ユニット212又はAIプロセッサ213がサービスデータを再び使用する必要がある場合、AI演算能力ユニット212又はAIプロセッサ213は、繰り返しのアクセスを回避するために、AIメモリ210からサービスデータを直接呼び出してもよく、それにより、AI演算能力ユニット212又はAIプロセッサ213の待ち時間を低減し、演算効率を改善する。AI演算プロセスにおいて、AIメモリ210は、AI演算の入力サービスデータ、中間結果又は最終結果をキャッシュしてもよい。例えば、AIメモリ210は高速キャッシュでもよい。AIメモリ210は高速ランダムアクセスメモリを含んでもよく、或いは、不揮発性メモリ、例えば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス又はユニバーサルフラッシュストレージ(universal flash storage, UFS)を含んでもよい。
【0127】
AI装置21は、第1のデータアクセス要求をハードディスク201に送信するように構成される。第1のデータアクセス要求は、メタデータを含む。メタデータ(metadata)は、サービスデータのアドレスを示すために使用される。例えば、メタデータは、トラック識別子と、セクタ識別子とを含んでもよい。トラック識別子は、サービスデータがハードディスクに位置するトラックを識別するために使用される。例えば、トラック識別子はトラックIDでもよい。セクタ識別子は、サービスデータがハードディスクに位置するセクタを識別するために使用される。例えば、セクタ識別子はセクタIDでもよい。ハードディスクは、第1のデータアクセス要求を通じてAI装置21により要求されたサービスデータを取得するために、トラック識別子に基づいて対応するトラックを見つけ、セクタ識別子に基づいてトラック上の対応するセクタを見つけ、次いで、セクタ内のデータを読み取ってもよい。メタデータは、複数の方式でアドレスを示してもよいことが理解されるべきである。例えば、メタデータは、開始アドレス及びサービスデータの長さを示すことによりサービスデータのアドレスを示してもよい。他の例として、メタデータは、サービスデータの開始アドレス及び終了アドレスを示すことによりサービスデータのアドレスを示してもよい。これは、この実施形態では限定されない。
【0128】
ハードディスク201は、メタデータに基づいてサービスデータを取得し、DMAを通じてサービスデータをAIメモリ210に書き込むように構成される。
【0129】
任意選択で、ストレージデバイス2は、他のストレージデバイスと通信する。例えば、ストレージデバイス2は、図1に示すシステム1内の第1のストレージデバイス10でもよく、他のストレージデバイスは、図1に示すシステム1内の第2のストレージデバイス11でもよく、第1のストレージデバイス10は、第2のストレージデバイス11と通信してもよい。
【0130】
可能な実現方式では、AI装置21は、第1のネットワークインタフェース211を含んでもよい。第1のネットワークインタフェース211は、ネットワークインタフェースカードの形式でもよい。第1のネットワークインタフェース211は、ネットワーク通信能力を提供してもよい。AI装置21は、第1のネットワークインタフェース211を通じて他のストレージデバイス2と通信でき、例えば、第1のネットワークインタフェース211を通じて他のストレージデバイス2とAIパラメータを交換できる。任意選択で、第1のネットワークインタフェース211は、リモートダイレクトメモリアクセス(remote direct memory access, 略称RDMA)機能をサポートしてもよく、第1のネットワークインタフェース211は、リモートダイレクトメモリアクセス・ネットワークインタフェースコントローラ(RDMA network interface controller, 略称RNIC)でもよい。
【0131】
例示的な適用シナリオでは、訓練プロセスにおいて或いは推論プロセスにおいて、AI装置21が演算を通じてAIパラメータを取得した場合、AI装置21は、第1のネットワークインタフェース211を通じてAIパラメータを他のストレージデバイス2に送信してもよく、それにより、他のストレージデバイス2は、AIパラメータを受信する。同様に、他のストレージデバイス2が演算を通じてAIパラメータを取得した場合、他のストレージデバイス2は、AIパラメータを第1のネットワークインタフェース211に送信してもよく、第1のネットワークインタフェース211は、AIパラメータを受信してもよい。
【0132】
AI装置21は、メタデータに基づいて、サービスデータが他のストレージデバイス2に位置すると決定されたとき、第2のデータアクセス要求を他のストレージデバイス2に送信するように更に構成され、それにより、サービスデータは、RDMAを通じてAIメモリ210に書き込まれる。第2のデータアクセス要求は、メタデータを含む。
【0133】
任意選択で、AI装置21は、AI演算能力ユニット212を更に含む。AI演算能力ユニット212は、AI演算能力を提供するように構成される。例示的な実施形態では、AIアルゴリズムは、モデル訓練又は推論及び予測を実行するために、AI演算能力ユニット212上で動作してもよい。AIアルゴリズムはニューラルネットワークモデルでもよい。本質的に、AIアルゴリズムは、行列又はベクトル乗算及び加算を含み、除算演算及び指数演算を更に含んでもよい。AI演算能力ユニット212は、1つ以上のグラフィックス処理ユニット(graphics processing unit, GPU)、ニューラル処理ユニット(neural-network processing unit, NPU)、テンソル処理ユニット(tensor processing unit, TPU)、フィールドプログラマブルゲートアレイ(field-programmable gate array, FPGA)、特定用途向け集積回路(application specific integrated circuit, ASIC)、脳のようなチップ、再構成可能な汎用AIチップ、CPU、プログラマブルロジックデバイス(programmable logic device, PLD)、コントローラ、状態機械、ゲートロジック、ディスクリートハードウェアコンポーネント、又はAI演算能力を提供できる他の回路のいずれかの組み合わせを含んでもよい。AI演算能力ユニット212は、1つ以上の処理コアを含んでもよい。
【0134】
AI演算能力ユニット212は、AIメモリ210からサービスデータを取得し、AI演算を実行するように具体的に構成される。
【0135】
任意選択で、AI装置21は、AIプロセッサ213を含む。AIプロセッサ213は、高速相互接続ネットワーク22を通じてAIメモリ210に接続されてもよい。AIプロセッサ213はCPUでもよい。AIプロセッサ213は、管理及びリソーススケジューリングを実行するように構成されてもよい。AIプロセッサ213は、オペレーティングシステム又はアプリケーションプログラムを動作させてもよい。AIプロセッサ213は、1つ以上の処理コアを含んでもよい。
【0136】
任意選択で、ストレージ装置20は、プロセッサ202と、メモリ203とを含む。プロセッサ202は、高速相互接続ネットワーク22を通じてメモリ203に接続されてもよい。プロセッサ202は、ストレージ装置20内の中央処理装置(central processing unit, CPU)でもよい。プロセッサ202は、デジタルシグナルプロセッサ(digital signal processing, DSP)、FPGA及びプログラマブルロジックアレイ(programmable logic array, PLA)のうち少なくとも1つのハードウェア形式で実現されてもよい。
【0137】
いくつかの可能な実施形態では、ストレージデバイスは、集中制御ストレージデバイスでもよい。具体的には、ストレージデバイスは、1つ以上のコントローラを含んでもよく、コントローラを通じてハードディスクを制御してもよい。さらに、ストレージデバイスは、1つ以上のカスケードボードを更に含んでもよい。カスケードボードは、ストレージデバイス内の異なるハードディスクをカスケードするように構成されてもよい。カスケードボードは、ハードディスク及びコントローラに接続されてもよい。例えば、図5を参照すると、ストレージデバイスはデュアルコントローラアーキテクチャでもよい。デュアルコントローラアーキテクチャは、ストレージデバイスに2つのコントローラが存在することを意味する。例えば、図5では、システム1は、2つのコントローラ、すなわち、コントローラ1及びコントローラ2を含んでもよい。他の例として、図6を参照すると、ストレージデバイスは4コントローラアーキテクチャでもよい。4コントローラアーキテクチャは、ストレージデバイスに4つのコントローラが存在することを意味する。例えば、図6では、システム1は、4つのコントローラ、すなわち、コントローラ1、コントローラ2、コントローラ3及びコントローラ4を含んでもよい。
【0138】
ストレージデバイスが集中制御ストレージデバイスである場合、AI装置は、コントローラ内に配置されてもよい。この場合、コントローラは、ハードディスクを制御する元の機能を実現することに加えて、AI演算能力を更に提供してもよい。ストレージデバイスが複数のコントローラを含む場合、各コントローラにAI装置が配置されてもよく、或いは、いくつかのコントローラにAI装置が配置されてもよく、他のコントローラにAI装置が配置されない。これは、この実施形態では限定されない。
【0139】
メモリ203は、サービスデータをキャッシュするように構成される。任意選択で、AIメモリ210とメモリ203との間のパススルーをサポートする機能によって、メモリ203はまた、AIパラメータをキャッシュするように構成されてもよい。メモリ203は、サービスデータ及び/又はAIパラメータをキャッシュするように構成される。プロセッサ202、AI演算能力ユニット212又はAIプロセッサ213がサービスデータ及び/又はAIパラメータを使用する必要があるとき、プロセッサ202、AI演算能力ユニット212又はAIプロセッサ213は、繰り返しのアクセスを回避するために、メモリ203からサービスデータ及び/又はAIパラメータを直接呼び出してもよく、それにより、プロセッサ202、AI演算能力ユニット212又はAIプロセッサ213の待ち時間を低減し、演算効率を改善する。例えば、メモリ203は高速キャッシュでもよい。メモリ203は、高速ランダムアクセスメモリを含んでもよく、或いは、不揮発性メモリ、例えば少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス又はユニバーサルフラッシュストレージ(universal flash storage, UFS)を含んでもよい。
【0140】
AI装置21は、AIプロセッサ213を含む。AIプロセッサ213は、高速相互接続ネットワーク22を通じてAIメモリ210に接続されてもよい。AIプロセッサ213はCPUでもよく、AIプロセッサ213は、管理及びリソーススケジューリングを実行するように構成されてもよい。例示的な実施形態では、AIプロセッサ213は、オペレーティングシステム又はアプリケーションプログラムを動作させてもよい。
【0141】
AIプロセッサ213は、AI装置21に配置され、それにより、AI演算タスク及び非AI演算タスクが実行のために異なるプロセッサに割り当てられることができる。演算タスク負荷共有を実現するために、AI演算能力ユニット212はAI演算タスクを実行し、AIプロセッサ213は非AI演算タスクを実行し、それにより、AI演算能力ユニット213が非AI演算タスクを実行するとき、演算能力が占有されることを防止する。いくつかの実施形態では、ストレージデバイスは、プロセッサ202の演算タスクを共有するためにAIプロセッサ201を更に使用してもよい。例えば、プロセッサ202は、ハードディスクからサービスデータを取得するタスクをAIプロセッサ201に送信してもよく、AIプロセッサ201は、ハードディスクからサービスデータを取得するタスクを実行し、取得されたサービスデータをAIプロセッサ201に送信してもよい。さらに、異なるプロセッサの性能上の利点が使用できる。例えば、ロジック制御を実行する際のCPUの利点のため、CPUは、リソーススケジューリング及び管理を実行するためにAIプロセッサ213として使用される。浮動小数点演算及び並列演算を実行する際のGPU又はNPUの利点のため、全体のAI演算効率を改善し、AIの加速を助けるために、GPU又はNPUは、モデル訓練又は他のAI演算を実行するためにAI演算能力ユニット212として使用される。さらに、これは、AI演算プロセスがリソーススケジューリング管理プロセスにより干渉されることを防止し、全体のAI演算効率を改善し、AIの加速を助けることができる。
【0142】
任意選択で、プロセッサ202は、分割を通じてメモリ203からメモリ空間のセグメントを取得し、AI装置21のためにメモリ空間のセグメントを予約するように更に構成される。
【0143】
任意選択で、AIプロセッサ213は、AIメモリ210の利用可能な容量が予め設定された閾値に到達したとき、メモリ適用要求をプロセッサ202に送信するように構成される。プロセッサ202は、メモリ適用要求に基づいて分割を通じてメモリ203からメモリ空間のセグメントを取得し、AI装置21のためにメモリ空間のセグメントを予約するように構成される。
【0144】
任意選択で、AIメモリ210の利用可能な容量は、指定のバッチサイズにより決定される。
【0145】
任意選択で、AIプロセッサ213は、演算タスクを少なくとも2つのサブタスクに分割し、少なくとも2つのサブタスクのうち第1のサブタスクをプロセッサ202に送信するように構成される。プロセッサ202は、第1のサブタスクを実行し、演算結果をAIプロセッサ213に送信するように更に構成される。この任意選択の方式は、複数の場合に適用されてもよい。例えば、AIプロセッサ213の演算能力が不十分であると決定されたとき、AIプロセッサは任意選択の方式を実行してもよい。
【0146】
任意選択で、ストレージ装置20は、第2のネットワークインタフェース204を含んでもよい。第2のネットワークインタフェース204は、ネットワーク通信を実行するように構成され、第2のネットワークインタフェース204はネットワークインタフェースカードでもよい。第2のネットワークインタフェース204は、高速相互接続ネットワーク22を通じてAI装置21、プロセッサ202及びメモリ203に接続されてもよい。
【0147】
任意選択で、ストレージ装置20は、サービスインタフェース205を含んでもよい。
【0148】
いくつかの可能な実施形態では、ストレージ装置20は、オペレーティングシステムをAI装置21にロードし、オペレーティングシステムを通じてAI装置21を起動するように構成されてもよい。具体的には、ストレージ装置20は、オペレーティングシステムのイメージファイルを記憶してもよい。ストレージ装置20がAI装置21を起動する必要がある場合、ストレージ装置20は、高速相互接続ネットワーク22を通じてオペレーティングシステムのイメージファイルをAI装置21に送信し、オペレーティングシステムのイメージファイルをAI装置21内のAIメモリ210にロードしてもよい。オペレーティングシステムは、AI装置21を起動するように、オペレーティングシステムのイメージファイルに基づいて動作する。オペレーティングシステムは、LINUXTM、UNIXTM、WINDOWSTM等でもよい。
【0149】
ストレージ装置20は、オペレーティングシステムをAI装置21にロードし、オペレーティングシステムは、AI装置21にインストールされる必要がなくてもよく、それにより、オペレーティングシステムがAI装置21の記憶空間を占有することを防止し、それにより、AI装置21の記憶容量を確保する。特に、ストレージ装置20が複数のAI装置21を含む場合、通常では、複数のAI装置21のオペレーティングシステムは同じである。したがって、ストレージ装置20は、バッチでAI装置21を起動するために、バッチで同じオペレーティングシステムをAI装置21にロードしてもよい。このように、同じオペレーティングシステムが全てのAI装置21にインストールされるので、同じオペレーティングシステムが全てのAI装置21の記憶空間を占有することを防止でき、それにより、全てのAI装置21の記憶空間を節約し、記憶効率を改善する。さらに、バッチ起動方式は、複数のAI装置21の起動効率を改善できる。
【0150】
任意選択で、AI装置21は、不揮発性記憶媒体を更に含んでもよい。以下の方法の実施形態のステップの全部又は一部は、コンピュータソフトウェア製品の形式で実現されてもよい。コンピュータソフトウェア製品は、上記のAI装置21又はAIメモリ210内の不揮発性記憶媒体に記憶されてもよい。コンピュータソフトウェア製品は、AI装置21がステップの全部又は一部を実行することを可能にするための1つ以上の命令を含む。
【0151】
任意選択で、AI装置21及びストレージ装置20は一緒に統合され、一式の製品として販売又は使用されてもよい。AI装置21及びストレージ装置20は互いに分離されない。いくつかの他の可能な実施形態では、AI装置21は、代替として、独立した製品として販売され、ストレージ装置20と一緒に使用されてもよい。例えば、AI装置21は、ストレージ装置20との接触又はストレージ装置20からの分離を実現するために、ストレージデバイス2の高速相互接続バスに挿入されてもよく、或いは、ストレージデバイス2の高速相互接続バスから除去されてもよい。
【0152】
図2に示すストレージデバイス2は、より多くの或いはより少ないコンポーネントを含んでもよいことが理解されるべきである。例えば、1つのコンポーネントが存在してもよく、或いは、数十個若しくは数百個のコンポーネント又はそれ以上のコンポーネントが存在してもよい。例えば、AI装置21は、複数のAI演算能力ユニット212を含んでもよい。ストレージデバイス2内のコンポーネントの量は、この実施形態では限定されない。
【0153】
この実施形態に示す構造は、ストレージデバイス2に対する具体的な限定を構成しないことが理解されるべきである。この出願の他のいくつかの実施形態では、ストレージデバイス2は、図2に示すものよりも多くの或いは少ないコンポーネントを含んでもよく、或いは、図2における2つ以上のコンポーネントを組み合わせてもよく、或いは、図2における1つのコンポーネントを2つ以上のノードに分割してもよく、或いは、図2における2つ以上のコンポーネントを異なる位置に配置してもよい。
【0154】
上記に、この出願の実施形態において提供される分散ストレージシステム及びストレージデバイスについて説明しており、以下に、分散ストレージシステム及びストレージデバイスに適用される方法の手順について、例を使用することにより説明する。
【0155】
図7は、この出願の実施形態によるデータ処理方法のフローチャートである。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1又は図2に示すいずれかのストレージデバイスでもよい。当該方法は以下のステップを含む。
【0156】
S71:ストレージデバイス内のプロセッサは、サービスデータをハードディスクに記憶する。
【0157】
例えば、クライアントは、サービスデータをストレージデバイスに送信してもよく、ストレージデバイスは、サービスデータをハードディスクに記憶するために、クライアントからサービスデータを受信し、サービスデータをハードディスクに書き込んでもよい。
【0158】
S72:ストレージデバイス内のAI装置は、サービスデータを取得するために、データ取得要求をストレージデバイス内のプロセッサに送信し、サービスデータに対してAI演算を実行する。
【0159】
任意選択で、プロセッサの演算リソース及びストレージデバイス内のAI装置の演算リソースは、リソースプールを構成してもよい。ストレージデバイスは、AI演算を処理するために、リソースプール内のリソースをスケジューリングしてもよい。ストレージデバイスの全体のAI演算能力は、プロセッサの演算能力とAI装置の演算能力との協働を通じて増加でき、それにより、AI演算を加速させる。
【0160】
AI演算プロセスは、以下のケース(1)及び(2)のうち1つ以上でもよいが、これらに限定されない。
【0161】
(1)モデル訓練
具体的には、ストレージデバイスは、AIモデルを取得するために、ストレージデバイス内のプロセッサの演算リソース及びAI装置の演算リソースを通じて、サンプルセットに対してモデル訓練を実行してもよい。例えば、AIモデルはニューラルネットワークモデルでもよい。例えば、画像認識モデルは、サンプル画像訓練を通じて取得されてもよく、画像認識モデルは、畳み込みニューラルネットワーク(convolutional neural networks, CNN)でもよいが、これに限定されず、或いは、明らかに、領域CNN(region-CNN, R-CNN)、高速なR-CNN(fast R-CNN)、より高速なR-CNN(faster R-CNN)又はシングルショットマルチボックス検出器(single shot multibox detector, SSD)ような他のCNNベースのニューラルネットワークでもよい。他の例として、AI装置は、サンプルテキスト訓練を通じて意味認識モデルを取得してもよく、意味認識モデルは、回帰型ニューラルネットワーク(recurrent neural networks, RNN)でもよいが、これに限定されない。他の例として、AI装置は、サンプル音声訓練を通じて音声認識モデルを取得してもよい。
【0162】
(2)推論及び予測
具体的には、ストレージデバイスは、サービスデータの識別結果を取得するために、識別対象のサービスデータを訓練されたAIモデルに入力し、AIモデル、プロセッサの演算リソース及びAI装置の演算リソースを通じてサービスデータ推論を実行してもよい。例えば、認識対象の画像が画像認識モデルに入力されてもよく、画像認識結果が出力される。画像認識結果は、画像カテゴリ、画像特徴又は画像内のオブジェクトの位置のうち1つ以上でもよいが、これらに限定されない。画像カテゴリは、画像に含まれる特定のオブジェクトを示してもよい。例えば、顔認識シナリオでは、画像認識モデルは顔認識モデルであり、画像カテゴリは顔カテゴリでもよい。シーン認識シナリオでは、画像認識モデルはシーン認識モデルであり、画像カテゴリはシーンカテゴリ、例えば、天井、芝生又はグラウンドでもよい。キャラクタ認識シナリオでは、画像認識モデルはキャラクタ認識モデルであり、画像カテゴリはキャラクタカテゴリでもよい。画像特徴は、一次元特徴値、二次元特徴マップ、三次元特徴キューブ又は高次元テンソルでもよいが、これらに限定されない。画像内のオブジェクトの位置は、オブジェクトが位置するバウンディングボックス(bounding box)の座標により表されてもよい。他の例として、認識対象のテキストが意味認識モデルに入力されてもよく、意味認識結果が出力される。他の例として、認識対象の音声が音声認識モデルに入力されてもよく、音声認識結果が出力される。
【0163】
プロセッサ及びAI装置は、この実施形態において提供されるストレージデバイスに配置され、それにより、ストレージデバイスは、AI装置を通じてAI演算能力を提供し、プロセッサを通じてサービスデータ記憶能力を提供でき、それにより、記憶及びAI演算能力の集約を実現する。AIパラメータ及びサービスデータは、外部ネットワークを通じて転送される必要なく、高速相互接続ネットワークを通じてストレージデバイス内で伝送される。したがって、サービスデータ及びAIパラメータを伝送するための経路が大幅に短縮され、サービスデータが近くでロードでき、それにより、ロードを加速させる。さらに、AI装置は、サービスデータを処理するために、プロセッサの演算リソースを借用でき、それにより、AI装置の演算能力が増加し、それにより、AI演算を加速させる。
【0164】
図7における実施形態では、AI装置は、複数の実現方式でサービスデータを具体的に取得してもよい。図8における実施形態、図9における実施形態及び図10における実施形態が、以下の説明のための例として使用される。
【0165】
いくつかの実施形態では、AI装置は、近くのストレージデバイスからサービスデータを取得できる。以下では、図8における実施形態及び図9における実施形態を例として使用することにより、近くのサービスデータを取得する実現方式について説明する。
【0166】
例えば、図8は、この出願の実施形態によるデータ処理方法のフローチャートである。AI装置が近くのサービスデータを取得する手順は以下のステップを含んでもよい。
【0167】
S81:AIプロセッサは、第1のデータ取得要求をプロセッサに送信する。
【0168】
AIプロセッサは、第1のデータ取得要求を生成し、高速相互接続ネットワークを通じて第1のデータ取得要求をプロセッサに送信してもよい。第1のデータ取得要求は、ハードディスクに記憶されたサービスデータを要求するために使用される。第1のデータ取得要求は、サービスデータの識別子を搬送してもよい。サービスデータの識別子は、サービスデータのIDでもよい。
【0169】
S82:第1のデータ取得要求に応じて、プロセッサは、ハードディスクからサービスデータを取得し、サービスデータをAI装置に送信する。
【0170】
プロセッサは、高速相互接続ネットワークを通じて第1のデータ取得要求を受信してもよい。プロセッサは、第1のデータ取得要求で搬送されたサービスデータの識別子を取得するために、第1のデータ取得要求を解析してもよい。プロセッサは、サービスデータの識別子に基づいて、ハードディスク内のサービスデータのアドレスを決定してもよい。プロセッサは、ハードディスクに記憶されたサービスデータを取得するために、サービスデータのアドレスに基づいてハードディスクにアクセスしてもよい。プロセッサは、高速相互接続ネットワークを通じてサービスデータをAI装置に返信してもよい。
【0171】
S83:AI装置は、プロセッサにより送信されたサービスデータを受信し、サービスデータに対してAI演算を実行する。
【0172】
この実施形態において提供される、AI装置が近くのサービスデータを取得する方法によれば、ストレージデバイスは、AI装置と、プロセッサと、ハードディスクとを含む。したがって、AI装置がサービスデータを取得する必要があるとき、AI装置は、データ取得要求をプロセッサに送信する。ストレージデバイス内のプロセッサは、ハードディスクからサービスデータを取得し、サービスデータをAIプロセッサに送信し、それにより、AIプロセッサは、サービスデータをローカルで取得できる。これは、ネットワークを通じてリモートストレージデバイスからサービスデータを要求することにより引き起こされる通信オーバヘッドを回避し、サービスデータを取得する遅延を短縮する。
【0173】
図8における実施形態は、近くのサービスデータを取得する手順を提供する。この出願のいくつかの他の実施形態では、サービスデータは、代替として、他の実現方式において近くで取得されてもよい。図9における実施形態が、以下の説明のための例として使用される。
【0174】
図9は、この出願の実施形態によるデータ処理方法の概略図である。AI装置が近くのサービスデータを取得する手順は以下のステップを含んでもよい。
【0175】
S91:AI装置は、第2のデータ取得要求をプロセッサに送信する。
【0176】
AI装置がプロセッサからサービスデータを取得する必要があるとき、AIプロセッサは、第2のデータ取得要求を生成し、高速相互接続ネットワークを通じて第2のデータ取得要求をプロセッサに送信してもよい。第2のデータ取得要求は、サービスデータを取得するように要求するために使用される。第2のデータ取得要求は、サービスデータの識別子を搬送してもよい。サービスデータの識別子は、サービスデータのIDでもよい。
【0177】
S92:プロセッサは、第2のデータ取得要求に応じて、サービスデータのメタデータをAI装置に送信し、メタデータは、サービスデータのアドレスを示すために使用される。
【0178】
プロセッサは、第2のデータ取得要求で搬送されたサービスデータの識別子を取得するために、第2のデータ取得要求を解析し、サービスデータのメタデータを取得し、高速相互接続ネットワークを通じてサービスデータのメタデータをAIプロセッサに送信してもよい。メタデータは、サービスデータのアドレス、すなわち、サービスデータの記憶位置を示すために使用される。例えば、メタデータは、サービスデータの開始アドレス及びサービスデータの長さを示してもよく、或いは、メタデータは、サービスデータの開始アドレス及び終了アドレスを示してもよい。
【0179】
図10は、ストレージデバイス内のAIプロセッサとプロセッサとの間の相互作用の概略図である。
【0180】
任意選択で、プロセッサは、サービスデータのアドレスに基づいて、サービスデータがDMAを通じてAI装置に送信できるか否かを決定してもよい。サービスデータがDMAを通じてAI装置に送信できる場合、図9における実施形態において提供される方法の手順をトリガするために、サービスデータのメタデータはAI装置に送信される。さらに、プロセッサは、サービスデータがRDMAを通じてAI装置に送信できるか否かを決定してもよい。サービスデータがRDMAを通じてAI装置に送信できる場合、図12における実施形態において提供される方法の手順をトリガするために、サービスデータのメタデータがAI装置に送信される。さらに、サービスデータがDMA又はRDMAを通じてAI装置に送信できない場合、サービスデータは、ハードディスクからメモリにロードされ、次いで、サービスデータは、メモリからAIメモリに伝送される。
【0181】
S93:サービスデータがストレージデバイスに位置することをメタデータが示すとき、AI装置は、第1のデータアクセス要求をハードディスクに送信する。
【0182】
第1のデータアクセス要求はサービスデータのメタデータを含み、第1のデータアクセス要求はDMA要求でもよい。例示的な実施形態では、AI装置内のAIプロセッサは、サービスデータのメタデータに基づいてサービスデータのアドレスを決定し、サービスデータがハードディスクに位置するか他のストレージデバイスに位置するかを決定してもよい。サービスデータがハードディスクに位置すると決定した場合、AIプロセッサは、メタデータに基づいて第1のデータアクセス要求を生成し、高速相互接続ネットワークを通じて第1のデータアクセス要求をハードディスクに送信する。
【0183】
S94:ハードディスクは、メタデータに基づいてサービスデータを取得し、DMAを通じてサービスデータをAI装置に書き込む。
【0184】
ハードディスクは、第1のデータアクセス要求で搬送されたメタデータを取得するために、第1のデータアクセス要求を解析し、メタデータに基づいてサービスデータのアドレスを決定し、サービスデータを取得するために当該アドレスにアクセスしてもよい。ハードディスクとAIメモリとの間にDMAパスが確立されてもよく、ハードディスクは、DMAパスを通じてサービスデータをAIメモリに送信してもよい。ハードディスクはスマートディスクでもよい。ハードディスクはCPUを含んでもよく、ハードディスクは、ハードディスク内のCPUを通じてサービスデータを書き込んでもよい。
【0185】
例えば、図11は、この出願の実施形態によるサービスデータ伝送の概略図である。図11から、ハードディスクに記憶されたサービスデータは、DMAを通じて、高速相互接続ネットワークを通じてAIメモリに伝送できることが習得できる。
【0186】
この実施形態において提供される方法によれば、AI装置とハードディスクとの間のDMAパススルーが実現できる。AI装置とハードディスクとの間にDMAパスが確立され、それにより、AI装置及びハードディスクは、DMAパスを通じて互いにサービスデータを迅速に交換できる。これは、AI装置によるサービスデータのロードを加速させ、AI装置により同時に処理できるサービスデータの量を増加させ、AI装置の間でAIパラメータを伝送するための通信オーバヘッドを低減し、AI訓練を加速させる。
【0187】
いくつかの他の実施形態では、AI装置は、他のストレージデバイスからサービスデータを取得できる。以下に、図12における実施形態を例として使用することにより、他のストレージデバイスからサービスデータを取得するための方法について説明する。具体的には、図12を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1又は図2に示すいずれかのストレージデバイスでもよい。当該方法は以下のステップを含む。
【0188】
S1201:AI装置は、第3のデータ取得要求をプロセッサに送信する。
【0189】
S1202:プロセッサは、第3のデータ取得要求に応じて、サービスデータのメタデータをAI装置に送信する。
【0190】
S1203:サービスデータが他のストレージデバイスに位置することをメタデータが示すとき、AI装置は、第2のデータアクセス要求を他のストレージデバイスに送信する。
【0191】
AIプロセッサは、サービスデータのメタデータに基づいてサービスデータのアドレスを決定し、サービスデータのアドレスに基づいて、サービスデータがローカルに記憶されているか他のストレージデバイスに記憶されているかを決定してもよい。サービスデータが他のストレージデバイスに記憶されていると決定した場合、AIプロセッサは、第2のデータアクセス要求を生成し、第2のデータアクセス要求を第1のネットワークインタフェースに送信する。第1のネットワークインタフェースは、第2のデータアクセス要求を他のストレージデバイスに送信してもよい。第2のデータアクセス要求は、サービスデータのメタデータを含んでもよい。第2のデータアクセス要求はRDMA要求でもよい。第2のデータアクセス要求は、サービスデータを宛先アドレスに書き込むように他のストレージデバイスに指示するために、ストレージデバイス内のAIメモリ内の宛先アドレスを含んでもよい。
【0192】
S1204:他のストレージデバイスは、第2のデータアクセス要求に応じて、サービスデータをAI装置に送信する。
【0193】
例えば、他のストレージデバイスは、RDMAを通じてサービスデータをAIメモリに書き込んでもよい。具体的には、他のストレージデバイスは、第2のデータアクセス要求で搬送されたサービスデータのメタデータを取得するために、第2のデータアクセス要求を解析し、サービスデータのメタデータに基づいてサービスデータのアドレスを決定し、サービスデータを取得するために、記憶媒体内のアドレスにアクセスしてもよい。さらに、他のストレージデバイスは、第2のデータアクセス要求に基づいて、他のストレージデバイスとAI装置内のAIメモリとの間にRDMAパスを確立し、RDMAパスを通じてサービスデータをAI装置内のAIメモリに書き込んでもよい。具体的には、他のストレージデバイスは、AIメモリ内の宛先アドレス及びサービスデータに基づいてRDMAメッセージを生成し、RDMAメッセージをAI装置に送信してもよい。RDMAメッセージは、サービスデータ及びAIメモリ内の宛先アドレスを含む。AI装置内の第1のネットワークインタフェースは、RDMAメッセージを受信し、RDMAメッセージで搬送されたサービスデータ及びAIメモリ内の宛先アドレスを取得するために、RDMAメッセージを解析してもよい。他のストレージデバイスは、高速相互接続ネットワークを通じてAIメモリにアクセスし、サービスデータをAIメモリ内の宛先アドレスに書き込む。
【0194】
例えば、図13は、この出願の実施形態によるサービスデータ伝送の概略図である。図13から、他のストレージデバイスに記憶されたサービスデータは、RDMAを通じて、高速相互接続ネットワークを通じてAIメモリに伝送できることが習得できる。
【0195】
この任意選択の方式では、AI装置内のAIメモリと他のストレージデバイスとの間のRDMAパススルーが実現され、AIメモリ及び他のストレージデバイスは、互いにサービスデータを迅速に交換する。これは、AI訓練を加速させる。
【0196】
任意選択で、AI装置は、AI演算能力ユニットを通じてAI演算能力を提供してもよい。例えば、図14を参照すると、この出願の実施形態は、AI演算処理方法を提供する。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1又は図2に示すいずれかのストレージデバイスでもよい。当該方法は、ストレージデバイス内のAI演算能力ユニットにより実行され、以下のステップを含む。
【0197】
S1401:AI演算能力ユニットは、AIメモリからサービスデータを取得する。
【0198】
AI演算能力ユニットは、高速相互接続ネットワークを通じてAIメモリと通信してもよい。AI演算能力ユニットは、AIメモリにキャッシュされたサービスデータを取得するために、高速相互接続ネットワークを通じてAIメモリにアクセスしてもよい。
【0199】
S1402:AI演算能力ユニットは、サービスデータに対してAI演算を実行する。
【0200】
AI演算に関する詳細については、図7における実施形態のステップS72を参照する。詳細は、ここでは再び説明しない。
【0201】
この任意選択の方式では、AI装置は、AI演算能力ユニットを通じてAI演算能力を提供でき、それにより、AI演算がストレージ装置の演算能力を占有することを防止し、それにより、AI演算がストレージデバイスの性能に深刻な影響を与えることを防止する。
【0202】
任意選択で、ストレージデバイス内のメモリ及びAIメモリは、メモリリソースの協働を実現してもよい。メモリリソースの協働は、複数の方式で実現されてもよい。図15における実施形態及び図16における実施形態が、以下の説明のための例として使用される。
【0203】
いくつかの実施形態では、AI装置は、AI演算を実行するために、ストレージ装置内のメモリを借用できる。図15を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1に示すシステム1内の第1のストレージデバイス10又は第2のストレージデバイス11でもよく、或いは、図2に示すストレージデバイス2でもよい。当該方法の相互作用主体は、ストレージデバイス内のAIプロセッサと、ストレージデバイス内のプロセッサとを含む。当該方法は以下のステップを含む。
【0204】
S1501:AIプロセッサは、AIメモリの利用可能な容量が予め設定された閾値に到達したと決定する。
【0205】
S1502:AIプロセッサは、メモリ適用要求をプロセッサに送信する。
【0206】
メモリ適用要求は、プロセッサのメモリを借用するために使用される。メモリ適用要求は、借用対象のメモリ空間のサイズを搬送してもよい。S1501において指定されるトリガ条件は単なる例であることが理解できる。AIプロセッサは、代替として、他の場合又はトリガ条件が存在しない場合、メモリ適用要求をプロセッサに送信してもよい。
【0207】
S1503:プロセッサは、メモリ適用要求に基づいて、分割を通じてメモリからメモリ空間のセグメントを取得し、AIプロセッサのためにメモリ空間のセグメントを予約する。
【0208】
S1504:AIプロセッサは、ストレージデバイス内のメモリのメモリ空間を通じてAI演算を実行する。
【0209】
AIプロセッサは、PCIeバス又はmemory fabricを通じて、ストレージデバイス内のプロセッサにより予約されたメモリ空間にアクセスし、メモリのメモリ空間及びAIメモリのメモリ空間を通じてAI演算を実行してもよい。AI演算プロセスにおいて、DMA、PCIe又はmemory fabricを通じて、メモリとAIメモリとの間で高速交換が実行できる。したがって、より大きいメモリ空間が、1つのバッチで単一のAIプロセッサにより処理できるデータの量を増加させることができるので、異なるAIプロセッサの間のパラメータ通信についてのオーバヘッドが低減でき、AI訓練が加速できる。さらに、AIプロセッサがAI演算を実行するのを停止し、ストレージデバイス内のメモリのメモリ空間を使用しないとき、AIプロセッサは、メモリ解放要求をプロセッサに送信してもよく、それにより、プロセッサは、予約されたメモリ空間を解放し、メモリ空間をプロセッサに戻す。
【0210】
関連技術では、GPUメモリは固定されており、その結果、AI演算のための十分なメモリが頻繁に存在しない。この任意選択の方式では、AI装置は、AI演算を実行するために、ストレージデバイス内のメモリを借用でき、それにより、AI装置の利用可能なメモリ空間が拡張され、AI装置は、より大きいメモリ内でAI演算を実行できる。これは、AI演算効率を改善する。
【0211】
AIプロセッサがメモリ適用要求を送信するトリガ条件で、ストレージデバイス内のプロセッサが分割を通じてメモリ空間を取得し、AIプロセッサのためにメモリ空間を予約する方式は、単に任意選択の方式である点に留意すべきである。他のいくつかの実施形態では、ストレージデバイス内のプロセッサは、代替として、他の場合に、分割を通じてメモリからメモリ空間のセグメントを取得し、AI装置のためにメモリ空間のセグメントを予約してもよい。例えば、ストレージデバイス内のプロセッサは、アクティブにメモリ空間を取得し、AI装置のためにメモリ空間を予約してもよい。例えば、メモリの利用可能な容量が予め設定された閾値よりも大きいと決定したとき、ストレージデバイス内のプロセッサは、分割を通じてメモリ空間を取得し、AI装置のためにメモリ空間を予約してもよい。他の例として、ストレージデバイス内のプロセッサは、AIメモリの利用可能な容量を監視してもよく、AIメモリの利用可能な容量が予め設定された閾値に到達したと決定したとき、ストレージデバイス内のプロセッサは、分割を通じてメモリ空間を取得し、AI装置のためにメモリ空間を予約する。ストレージデバイス内のプロセッサが分割を通じてメモリ空間を取得し、AIプロセッサのためにメモリ空間を予約する適用シナリオは、この実施形態では限定されないことが理解されるべきである。いくつかの実施形態では、ストレージデバイス内のプロセッサは、いずれかの予め設定された条件で、分割を通じてメモリ空間を取得し、AIプロセッサのためにメモリ空間を予約してもよい。
【0212】
任意選択で、AIメモリの利用可能な容量は指定のバッチサイズ(batchsize)により決定される。バッチサイズは、1回の訓練に使用されるデータの量である。具体的には、AIプロセッサは、指定のバッチサイズに基づいてAIメモリの利用可能な容量を決定してもよく、言い換えると、指定のバッチサイズに基づいてAI演算を実行するために必要とされるAIメモリの具体的な容量を決定してもよい。AIプロセッサは、AIメモリの利用可能な容量を予め設定された閾値と比較してもよい。AIメモリの利用可能な容量が予め設定された閾値に到達した場合、これは、AIメモリが不十分なメモリ空間を有することを示す。この場合、ストレージデバイス内のメモリを借用する手順がトリガされる。
【0213】
この任意選択の方式では、AIプロセッサは、ストレージデバイス内のメモリのメモリ空間を通じて訓練を実行してもよい。したがって、より大きい利用可能なメモリ空間がAI訓練のためのバッチサイズを増加させることができるので、1つのバッチでAI装置により処理できるサービスデータの量が増加でき、異なるAI装置の間でAIパラメータを交換するための通信オーバヘッドが低減でき、AI訓練が加速できる。実験は、AI訓練がAIメモリのみを通じて実行された場合、最大バッチサイズが256に設定されることを示している。しかし、この方式では、バッチサイズは32000に設定されてもよい。したがって、バッチサイズはかなり増加する。
【0214】
いくつかの実施形態では、ストレージデバイスがAIパラメータを読み取る/書き込むプロセスにおいて、通常ではAIメモリがストレージデバイス内のメモリよりも良い性能を有する(例えば、AIメモリのアクセス速度は、メモリのアクセス速度よりも速くてもよい)ことを利用することにより、AIパラメータの読み取り/書き込みを加速させるために、AIメモリが優先的に使用されてもよく、次いで、ストレージデバイス内のメモリが使用される。具体的には、階層化されたAIパラメータのキャッシングを実行するために、AIメモリは第1レベルとして機能してもよく、メモリは第2レベルとして機能してもよい。第1レベルの優先度は、第2レベルの優先度よりも高い。このように、ストレージデバイス内のメモリ及びAIメモリは階層化され、AIパラメータは、AIメモリ内に優先的にキャッシュされる。可能な実現方式では、媒体コントローラは、AIメモリとストレージデバイス内のメモリとの間にマッピング関係を確立してもよい。AIメモリがオーバーフローした場合、AIメモリにキャッシュされたAIパラメータは、ストレージデバイス内のメモリに記憶される。
【0215】
いくつかの実施形態では、サービスデータのアクセス又はサービスデータの記憶を加速させるために、ストレージ装置は、サービスデータを読み取る/書き込むためにAI装置内のメモリを借用できる。図16を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1又は図2に示すいずれかのストレージデバイスでもよい。当該方法は以下のステップを含む。
【0216】
S1601:ストレージデバイス内のプロセッサは、ストレージデバイス内のメモリの利用可能な容量が予め設定された閾値に到達したと決定する。
【0217】
S1602:ストレージデバイス内のプロセッサは、メモリ適用要求をAIプロセッサに送信する。
【0218】
メモリ適用要求は、AIプロセッサのAIメモリを借用するために使用される。メモリ適用要求は、借用対象のメモリ空間のサイズを搬送してもよい。S1111において指定されるトリガ条件は単なる例であることが理解できる。ストレージデバイス内のプロセッサは、代替として、他の場合又はトリガ条件が存在しない場合、メモリ適用要求をAIプロセッサに送信してもよい。
【0219】
S1603:AIプロセッサは、メモリ適用要求に基づいて、分割を通じてAIメモリからメモリ空間のセグメントを取得し、ストレージデバイス内のプロセッサのためにメモリ空間のセグメントを予約する。
【0220】
S1604:ストレージデバイス内のプロセッサは、AIメモリのメモリ空間を通じてAI演算を実行する。
【0221】
ストレージデバイス内のプロセッサは、高速相互接続ネットワーク又はmemory fabricを通じて、AIプロセッサにより予約されたメモリ空間にアクセスし、AIメモリのメモリ空間及びメモリのメモリ空間を通じてサービスデータを読み取り/書き込みしてもよい。サービスデータの読み取り/書き込みプロセスにおいて、DMA、高速相互接続ネットワーク又はmemory fabricを通じて、AIメモリとメモリとの間で高速交換が実行できる。したがって、より大きいメモリ空間が、1つのバッチで単一のプロセッサにより処理できるデータの量を増加させることができるので、異なるプロセッサの間のパラメータ通信についてのオーバヘッドが低減でき、サービスデータの読み取り/書き込みが加速できる。さらに、ストレージデバイス内のプロセッサが、サービスデータを読み取ること又はサービスデータを書き込むことを停止し、AIメモリのメモリ空間を使用しないとき、プロセッサは、メモリ解放要求をAIプロセッサに送信してもよく、それにより、AIプロセッサは、予約されたメモリ空間を解放し、メモリ空間をAIプロセッサに戻す。
【0222】
例示的な適用シナリオでは、ユーザは顔画像セットに注釈を付け、その後に顔画像セットを通じてAI訓練を実行するために、顔画像セットをストレージデバイスに記憶する必要がある。この場合、ユーザは、クライアントが顔画像セットをストレージデバイスに送信するように、クライアントをトリガしてもよい。ストレージデバイスが顔画像セットを受信した後に、ストレージデバイス内のプロセッサは、通常ではまず、顔画像セットをメモリにキャッシュし、次いで、顔画像セットの永続的な記憶を実現するために、メモリ内の顔画像セットをハードディスクに書き込む。顔画像セットのデータ量が膨大であるので、ストレージデバイス内のメモリの容量が要件を満たさない可能性があり、その結果、ストレージデバイス内のメモリの利用可能な容量は、予め設定された閾値に到達する。この場合、ストレージデバイス内のプロセッサは、AIメモリのメモリ空間を借用し、より大きいメモリ空間を通じて顔画像セットをキャッシュするために、ステップS1601~ステップS1604を実行してもよく、それにより、顔画像セットの記憶を加速させる。
【0223】
関連技術では、ストレージデバイス内のメモリの容量が固定されており、その結果、サービスデータを記憶するための十分なメモリが頻繁に存在しない。この任意選択の方式では、ストレージ装置は、サービスデータを読み取る/書き込むためにAI装置内のAIメモリを借用でき、それにより、ストレージ装置の利用可能なメモリ空間が拡張され、ストレージ装置は、サービスデータをより大きいメモリに記憶できる。これは、サービスデータの読み取り/書き込み時間を低減し、サービスデータの読み取り/書き込み効率を改善する。
【0224】
任意選択で、ストレージデバイス内のプロセッサ及びAIプロセッサは、演算能力の協働を実現してもよい。演算能力の協働は、複数の方式で実施されてもよい。図17における実施形態及び図18における実施形態が、以下の説明のための例として使用される。
【0225】
いくつかの実施形態では、ストレージデバイス内のプロセッサの演算能力とAIプロセッサの演算能力との間の協働をサポートするために、AIプロセッサは、AI演算を処理するためにストレージデバイス内のプロセッサの演算能力を借用できる。図17を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1又は図2に示すいずれかのストレージデバイスでもよい。当該方法は以下のステップを含む。
【0226】
S1701:AIプロセッサの演算能力が不十分であると決定されたとき、AIプロセッサは、演算タスクを少なくとも2つのサブタスクに分割する。
【0227】
AIプロセッサがAI訓練及びリソーススケジューリングを実行するプロセスにおいて、AIプロセッサは演算操作を実行するので、CPUが占有され、その結果、演算能力が不十分である。この場合、AIプロセッサは、プロセッサを通じて演算タスクを共有するために、演算タスクを分割してもよい。
【0228】
S1702:AIプロセッサは、少なくとも2つのサブタスクのうち第1のサブタスクをストレージデバイス内のプロセッサに送信する。
【0229】
第1のサブタスクは、少なくとも2つのサブタスクの中にあり且つストレージデバイス内のプロセッサにより実行されるタスクである。AIプロセッサは、高速相互接続ネットワークを通じて第1のサブタスクを送信してもよい。
【0230】
S1703:ストレージデバイス内のプロセッサは、第1のサブタスクを実行する。
【0231】
S1704:ストレージデバイス内のプロセッサは、演算結果をAIプロセッサに送信する。
【0232】
第1のサブタスクを完了した後に、ストレージデバイス内のプロセッサは、第1のサブタスクの演算結果をAIプロセッサにフィードバックしてもよい。AIプロセッサは、演算結果を受信し、演算結果に基づいて次の演算タスクを実行してもよく、或いは、演算結果に基づいてAI演算能力ユニットをスケジューリングしてもよい。
【0233】
この任意選択の方式では、AIプロセッサの演算能力が不十分であるとき、AIプロセッサの演算能力とストレージデバイス内のプロセッサの演算能力との間の協働を実現し、AIプロセッサの演算能力を増加させるために、AIプロセッサは、AI演算を処理するためにストレージデバイス内のプロセッサの演算能力を借用でき、それにより、AI訓練を加速させる。
【0234】
いくつかの実施形態では、サービスデータのアクセス又はサービスデータの記憶を加速させるために、ストレージデバイス内のプロセッサは、サービスデータを読み取る/書き込むためにAIプロセッサの演算能力を借用できる。図18を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、ストレージデバイスに適用されてもよい。ストレージデバイスは、図1又は図2に示すいずれかのストレージデバイスでもよい。当該方法は以下のステップを含む。
【0235】
S1811:ストレージデバイス内のプロセッサの演算能力が不十分であると決定されたとき、ストレージデバイス内のプロセッサは、演算タスクを少なくとも2つのサブタスクに分割する。
【0236】
ストレージデバイス内のプロセッサがサービスデータを処理するプロセスにおいて、プロセッサは読み取り操作又は書き込み操作を実行するので、CPUが不十分であり、その結果、演算能力が不十分である。この場合、ストレージデバイス内のプロセッサは、AIプロセッサを通じて演算タスクを共有するために、演算タスクを分割してもよい。
【0237】
S1812:ストレージデバイス内のプロセッサは、少なくとも2つのサブタスクのうち第2のサブタスクをAIプロセッサに送信する。
【0238】
第2のサブタスクは、少なくとも2つのサブタスクの中にあり且つAIプロセッサにより実行されるタスクである。例えば、第2のサブタスクは、ハードディスクからサービスデータを取得することでもよい。プロセッサは、高速相互接続ネットワークを通じて第2のサブタスクを送信してもよい。
【0239】
S1813:AIプロセッサは、第2のサブタスクを実行する。
【0240】
S1814:AIプロセッサは、演算結果をストレージデバイス内のプロセッサに送信する。
【0241】
第2のサブタスクを完了した後に、AIプロセッサは、第2のサブタスクの演算結果をストレージデバイス内のプロセッサにフィードバックしてもよい。ストレージデバイス内のプロセッサは、演算結果を受信し、演算結果に基づいて次の演算タスクを実行してもよい。
【0242】
例えば、第2のサブタスクがハードディスクからサービスデータを取得することである場合、ハードディスクからサービスデータを取得した後に、AIプロセッサは、取得されたサービスデータをストレージデバイス内のプロセッサに送信してもよい。
【0243】
この任意選択の方式では、ストレージデバイス内のプロセッサの演算能力が不十分であるとき、AIプロセッサの演算能力とストレージデバイス内のプロセッサの演算能力との間の協働を実現し、ストレージデバイス内のプロセッサの演算能力を増加させるために、ストレージデバイス内のプロセッサは、サービスデータを読み取る/書き込むためにAIプロセッサの演算能力を借用でき、それにより、サービスデータの読み取り/書き込みを加速させる。
【0244】
任意選択の実施形態では、ストレージデバイスがAI演算を処理する前に、ストレージデバイス内のプロセッサは、オペレーティングシステムをAI装置にロードしてもよく、ストレージデバイス内のプロセッサは、オペレーティングシステムを通じてAI装置を起動する。他の任意選択の実施形態では、AI装置は、代替として、オペレーティングシステムを予め記憶してもよく、ストレージデバイス内のプロセッサは、起動命令をAI装置に送信してもよい。AI装置は、起動命令を受信し、起動命令に応じてオペレーティングシステムをロードし、オペレーティングシステムを動作させてもよく、それにより、AI装置が起動される。プロセッサは、端末又は上位層アプリケーションからAI演算命令を受信してもよい。AI演算命令は、AI演算を実行するようにプロセッサに指示するために使用される。プロセッサは、AI演算命令によるトリガを通じてオペレーティングシステムをAI装置にロードしてもよい。明らかに、プロセッサは、代替として、他の機会にオペレーティングシステムをAI装置にロードしてもよい。これは、この実施形態では限定されない。
【0245】
上記の実施形態は、単一のストレージデバイスがAI演算を処理する方法の手順を記載している。この出願のいくつかの実施形態では、分散ストレージシステム内の複数のストレージデバイスは、AI演算を実行するために協働してもよく、それにより、全体のAI演算能力を拡張する。詳細は以下に説明する。
【0246】
図19は、この出願の実施形態によるデータ処理方法のフローチャートである。当該方法は、図1に示すストレージシステムに適用されてもよく、当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、ストレージシステム内の第1のストレージデバイス及び第2のストレージデバイスを含む。当該方法は以下のステップを含む。
【0247】
S1901:第1のストレージデバイス内の第1のAI装置及び第2のストレージデバイス内の第2のAI装置は、第1のネットワークを通じて互いにAIパラメータを伝送する。
【0248】
第1のストレージデバイス及び第2のストレージデバイスがAI演算を処理するプロセスにおいて、第1のストレージデバイス及び第2のストレージデバイスは、互いにAIパラメータを交換してもよい。具体的には、AI演算は、通常ではニューラルネットワークモデルに基づいて実行され、ニューラルネットワークモデルに基づく演算プロセスは、主に2つの部分、すなわち、順方向伝搬アルゴリズム及び逆方向伝搬アルゴリズム(back propagation neural networks, BP)を含む。順方向伝搬アルゴリズムは、ニューラルネットワークモデルの出力結果を演算するために使用される。順方向伝搬アルゴリズムを動作するプロセスにおいて、データが出力層から出力されるまで、データはニューラルネットワークモデルの入力層から1つ以上の隠れ層への方向に出力層まで層毎に演算されて伝送される。逆方向伝搬アルゴリズムは、モデルの出力結果と実際の結果との間の誤差を低減するために使用される。逆方向伝搬アルゴリズムを動作するプロセスにおいて、ニューラルネットワークモデルは、AIパラメータ、例えば、各ニューロンの重みを調整することにより最適化される。結論として、ニューラルネットワークモデルの動作は順方向伝搬アルゴリズム及び逆方向伝搬アルゴリズムの周期的反復を含む。このプロセスにおいて、モデルがAIパラメータ調整を通じて継続的に最適化できるように、AIパラメータが交換される必要がある。
【0249】
第1のAI装置が演算を通じてAIパラメータを取得したとき、第1のAI装置は、第1のネットワークインタフェースを通じてAIパラメータを出力してもよい。第1のネットワークは、第1のAI装置内の第1のネットワークインタフェースからAIパラメータを受信してもよく、第1のネットワークは、受信したAIパラメータを第2のAI装置内の第1のネットワークインタフェースに送信してもよい。第2のAI装置は、第1のネットワークインタフェースから、入力されたAIパラメータを受信してもよい。
【0250】
任意選択で、ストレージシステムがAI演算を処理するように構成されたホストを更に含む場合、第1のネットワークは、第1のストレージデバイスと第2のストレージデバイスとホストとの間でAIパラメータを伝送するために使用されてもよい。
【0251】
S1902:第1のストレージデバイス内の第1のストレージ装置及び第2のストレージデバイス内の第2のストレージ装置は、第2のネットワークを通じて互いにサービスデータを伝送する。
【0252】
例えば、図20は、この出願の実施形態によるデータ伝送の概略図である。図20から、AIパラメータは、第1のネットワークを通じて異なるストレージデバイス内のAI装置の間で伝送されてもよく、サービスデータは、第2のネットワークを通じて異なるストレージデバイス内のストレージ装置の間で伝送されてもよいことが習得できる。
【0253】
この実施形態において提供される方法によれば、2つのストレージデバイスは、AIパラメータ及びサービスデータに基づいてAI演算を協働して実行するために、第1のネットワークを通じて、それぞれのAI装置を通じて互いにAIパラメータを交換し、第2のネットワークを通じて、それぞれのストレージ装置を通じて互いにサービスデータを交換する。複数のストレージデバイスの記憶能力及びAI演算能力が集約され、それにより、システムの全体の記憶能力及びAI演算能力が増加できる。
【0254】
任意選択で、ストレージ装置は、第1のネットワークを通じて互いにサービスデータを交換してもよい。具体的には、図21を参照すると、この出願の実施形態は、サービスデータ伝送方法を提供する。当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、第1のストレージ装置と、第2のストレージ装置とを含む。当該方法は以下のステップを含む。
【0255】
S2111:第1のストレージ装置は、第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値未満であると決定する。
【0256】
第1のストレージ装置又は管理装置は、第1のストレージ装置の第2のネットワークのネットワークリソースの量を検出し、第1のストレージ装置の第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値未満であるか否かを決定し、第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値未満であると決定した場合、ステップS2112を実行してもよい。いくつかの実施形態では、第1のストレージ装置又は管理装置は、第1のAI装置の第1のネットワークのネットワークリソースの量及び第2のAI装置の第1のネットワークのネットワークリソースの量を更に検出し、第1のAI装置の第1のネットワークのネットワークリソースの量及び第2のAI装置の第1のネットワークのネットワークリソースの量がそれぞれ、指定のAIネットワークリソース閾値よりも大きいか否かを決定してもよい。第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値未満であり、第1のAI装置の第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値よりも大きく、第2のAI装置の第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値よりも大きいと決定された場合、これは、第2のネットワークのネットワークリソースが現在不十分であるが、十分なAIネットワークリソースが存在することを示す。この場合、ステップS2112が実行されてもよい。さらに、S2111において制限条件が存在しない場合であっても、ストレージ装置は、第1のネットワークを通じて互いにサービスデータを交換してもよいことが理解できる。
【0257】
S2112:他のサービスデータが、第1のネットワークを通じて第1のストレージ装置と第2のストレージ装置との間で伝送される。
【0258】
例えば、第1のストレージ装置は送信元デバイスであり、第2のストレージ装置は宛先デバイスである。他のサービスデータを伝送する手順は以下を含んでもよい。第1のAI装置内の第1のネットワークインタフェースは、高速相互接続ネットワークを通じて第1のストレージ装置内のハードディスクにアクセスし、第1のストレージ装置内のハードディスクから他のサービスデータを読み取り、第1のネットワークを通じて他のサービスデータを第2のストレージデバイスに送信してもよい。第2のAI装置内の第1のネットワークインタフェースは、第1のネットワークを通じて他のサービスデータを受信し、高速相互接続ネットワークを通じて他のサービスデータを第2のストレージ装置内のメモリに書き込んでもよい。
【0259】
例示的なシナリオでは、分散ストレージシステムがジョブを開始し、各ストレージデバイスが最初にサービスデータをロードするとき、ストレージデバイスが第2のネットワークを通じてサービスデータをロードするので、輻輳が第2のネットワークで発生する。この場合、AI装置がジョブを開始していないか或いはちょうどジョブを開始しているので、第1のネットワークは通常ではアイドル状態であり、したがって、使用できる。
【0260】
サービスデータ伝送を加速させるために、第1のネットワークは、サービスデータを伝送するために使用され、それにより、サービスデータは、第1のネットワークと第2のネットワークとの間の協調を通じて各ストレージデバイスに迅速にロードできる。
【0261】
関連技術では、サービスデータは、通常では、第2のネットワークのみを通じて伝送される。これは、第2のネットワークの1つの転送経路のみが存在することと等価である。この任意選択の方式は、少なくとも以下の効果を達成できる。互いにサービスデータを交換するための新たな経路が、ストレージ装置のために提供される。第2のネットワークのネットワークリソースが不十分であるとき、第1のネットワークは、サービスデータを交換するために使用され、第1のネットワークは、サービスデータを転送するために新たに追加された経路として使用されてもよい。この場合、サービスデータは、第2のネットワークを通じて伝送されてもよく、或いは、第1のネットワークを通じて伝送されてもよい。これは、サービスデータを伝送するためのネットワーク帯域幅を増加させ、サービスデータを交換する遅延を短縮し、サービスデータ交換を加速させ、AI演算を加速させる。
【0262】
任意選択で、異なるストレージデバイスの間のメモリパススルーは、RDMAを通じて実現されてもよい。具体的には、図22を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、第1のストレージデバイス内の第1のAI装置と、第2のストレージデバイス内の第2のAI装置とを含む。当該方法は以下のステップを含む。
【0263】
S2211:第1のAI装置は、第1のネットワークのネットワークリソース要求を第2のAIプロセッサに送信し、メモリRDMAアクセス要求を第2のプロセッサに送信する。
【0264】
第1のネットワークのネットワークリソース要求は、サービスデータを伝送するために、第2のAI装置の第1のネットワークのいくつかのネットワークリソースを占有するように要求するために使用される。メモリRDMAアクセス要求は、RDMAを通じて第2のメモリにアクセスするために使用される。メモリRDMAアクセス要求は、サービスデータが宛先アドレスに書き込まれる必要があることを示すために、第2のメモリの宛先アドレスを含んでもよい。
【0265】
任意選択の実施形態では、第1のAI装置内の第1のAIプロセッサは、第1のネットワークのネットワークリソース要求及びメモリRDMAアクセス要求を生成し、第1のネットワークのネットワークリソース要求及びメモリRDMAアクセス要求を第1のネットワークインタフェースに送信してもよい。第1のネットワークインタフェースは、第1のネットワークのネットワークリソース要求を第2のAIプロセッサに送信し、メモリRDMAアクセス要求を第2のプロセッサに送信してもよい。第1のネットワークのネットワークリソース要求を受信した後に、第2のAIプロセッサは、分割を通じて第1のネットワークのいくつかのネットワークリソースを取得し、第1のAI装置のためにいくつかのネットワークリソースを予約してもよい。第2のAIプロセッサがメモリRDMAアクセス要求を受信した後に、第2のAIプロセッサは、メモリRDMAアクセス応答を生成し、メモリRDMAアクセス応答を第1のAI装置に返信してもよい。メモリRDMAアクセス応答は、第2のメモリのターゲットアドレスを搬送し、それにより、第1のAI装置は、RDMAを通じてデータを第2のメモリのターゲットアドレスに書き込む。上記の手順に従って、第2のAI装置と第1のAI装置との間にRDMAパスが確立されてもよい。
【0266】
S2212:第1のAI装置は、第1のメモリから他のサービスデータを読み取る。
【0267】
第1のAI装置は、第1のネットワークインタフェースを含んでもよい。第1のネットワークインタフェースはRDMA機能をサポートする。第1のAI装置内の第1のネットワークインタフェースは、高速相互接続ネットワークを通じて第1のメモリにアクセスし、第1のメモリ内の他のサービスデータのアドレスに基づいて、第1のメモリから他のサービスデータを読み取ってもよい。
【0268】
S2213:第1のAI装置は、第1のネットワークを通じて他のサービスデータを第2のAI装置に送信する。
【0269】
第1のAI装置内の第1のネットワークインタフェースは、読み取られた他のサービスデータを送信してもよく、他のサービスデータは、第1のネットワークを通じて第2のAI装置に伝送されてもよい。
【0270】
S2214:第2のAI装置は、他のサービスデータを第2のメモリに書き込む。
【0271】
具体的には、第2のAI装置は、第1のネットワークインタフェースを含んでもよい。第1のネットワークインタフェースはRDMA機能をサポートする。第2のAI装置内の第1のネットワークインタフェースは、第1のAI装置から他のサービスデータを受信してもよい。第2のAI装置内の第1のネットワークインタフェースは、高速相互接続ネットワークを通じて他のサービスデータを第2のメモリの宛先アドレスに書き込んでもよい。
【0272】
さらに、第2のAI装置が他のサービスデータに対して書き込み操作を完了した後に、第1のAI装置及び第2のAI装置は、第1のネットワークの占有されたネットワークリソースを解放してもよく、第1のAI装置と第2のAI装置との間でデータを交換するタスクが終了する。
【0273】
図23は、第1のネットワークを通じて異なるメモリの間でデータパススルーを実現する概略図である。図23から、第1のネットワークがサービスデータを転送するための新たな経路として使用でき、第1のメモリにキャッシュされたサービスデータは第1のネットワークを通じて第2のメモリに直接伝送できることが習得できる。
【0274】
この任意選択の方式では、サービスデータは、RDMAを通じて第1のメモリと第2のメモリとの間で交換できる。したがって、第1のプロセッサ及び第2のプロセッサの処理オーバヘッドが回避でき、サービスデータは、第1のメモリから第2のメモリに直接到着し、それにより、サービスデータ交換を加速させ、サービスデータ交換効率を改善する。
【0275】
図23における実施形態は、第1のネットワークを通じて2つのストレージデバイス内のメモリの間でRDMAデータパススルーを実現する手順を示す。この出願のいくつかの実施形態では、送信元ストレージデバイス内のハードディスクと宛先ストレージデバイス内のメモリとの間のRDMAデータパススルーも同様の方式で実現されてもよい。以下に、図24における実施形態を使用することにより具体的な説明を提供する。
【0276】
図24を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、第1のストレージデバイス内の第1のAI装置と、第2のストレージデバイス内の第2のAI装置とを含む。当該方法は以下のステップを含む。
【0277】
S2411:第1のAI装置は、第1のネットワークのネットワークリソース要求を第2のAIプロセッサに送信し、メモリRDMAアクセス要求を第2のプロセッサに送信する。
【0278】
S2412:第1のAI装置は、第1のストレージ装置内のハードディスクから他のサービスデータを読み取る。
【0279】
第1のAI装置内の第1のネットワークインタフェースは、高速相互接続ネットワークを通じて第1のストレージ装置内のハードディスクにアクセスし、第1のストレージ装置内のハードディスク内の他のサービスデータのアドレスに基づいて、第1のストレージ装置内のハードディスクから他のサービスデータを読み取ってもよい。
【0280】
S2413:第1のAI装置は、第1のネットワークを通じて他のサービスデータを第2のAI装置に送信する。
【0281】
S2414:第2のAI装置は、他のサービスデータを第2のメモリに書き込む。
【0282】
図25は、第1のネットワークを通じて、ストレージデバイス内のハードディスクとメモリとの間でデータのパススルーを実現する概略図である。図25から、第1のネットワークがサービスデータを転送するための新たな経路として使用できることが習得できる。第1のストレージ装置内のハードディスクに記憶されたサービスデータは、RDMAを通じて、第1のネットワークを通じて第2メモリに直接伝送でき、それにより、送信元ストレージノード内のハードディスクとターゲットストレージノード内のメモリとの間のデータパススルーを実現する。
【0283】
この任意選択の方式では、サービスデータは、RDMAを通じて第1のストレージ装置内のハードディスクと第2のメモリとの間で交換できる。したがって、第1のプロセッサ及び第2のプロセッサの処理オーバヘッドが回避でき、サービスデータは、第1のストレージ装置内のハードディスクから第2のメモリに直接到着でき、それにより、サービスデータ交換を加速させ、サービスデータ交換効率を改善する。
【0284】
任意選択で、AI装置は、第2のネットワークのネットワークリソースを通じて互いにAIパラメータを交換してもよい。具体的には、他のAIパラメータが、第2のネットワークを通じて第1のAI装置と第2のAI装置との間で伝送される。
【0285】
この機能は、複数の場合にトリガされてもよい。例えば、第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値未満であるとき、他のAIパラメータが、第2のネットワークを通じて第1のAI装置と第2のAI装置との間で伝送される。さらに、ネットワークリソースの量が指定のAIネットワークリソース閾値未満であるという制限条件が存在しない場合であっても、他のAIパラメータが、第2のネットワークを通じて第1のAI装置と第2のAI装置との間で伝送されてもよいことが理解できる。
【0286】
任意選択の実施形態では、第1のAI装置、第2のAI装置又は管理装置は、第1のネットワークのネットワークリソースの量を検出し、第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値未満であるか否かを決定し、第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値未満である場合、第2のネットワークを通じて他のAIパラメータを伝送してもよい。第1のAI装置、第2のAI装置又は管理装置は、第2のネットワークのネットワークリソースの量を更に検出し、第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値よりも大きいか否かを決定し、第1のネットワークのネットワークリソースの量が指定のAIネットワークリソース閾値未満であり、第2のネットワークのネットワークリソースの量が指定のストレージネットワークリソース閾値よりも大きい場合、第2のネットワークを通じて他のAIパラメータを伝送してもよい。
【0287】
例示的な適用シナリオでは、第1のAI装置によりロードされるべきサービスデータの全て又はほとんどが第1のストレージ装置に位置する場合、第1のAI装置は、近くでサービスデータをローカルにロードしてもよい。これは、第2のネットワークを通じてリモートストレージデバイスにアクセスする大量の操作を防止し、それにより、第2のネットワークのローカルネットワークリソースは十分である。しかし、第1のAI装置はリモートAI装置とAIパラメータを頻繁に交換するので、第1のネットワークのネットワークリソースは不十分である。このシナリオでは、第2のネットワークの比較的十分なネットワークリソースがAIパラメータの新たな経路として使用されてもよく、それにより、AIパラメータ交換を加速させる。
【0288】
この任意選択の方式では、互いにAIパラメータを交換するための新たな経路がAI装置のために提供される。第1のネットワークのネットワークリソースが不十分であるとき、第2のネットワークは、AIパラメータを交換するために使用される。これは、AIパラメータを伝送するためのネットワーク帯域幅を増加させ、AIパラメータを交換する遅延を短縮し、AIパラメータ交換を加速させ、AI演算を加速させる。
【0289】
任意選択で、異なるストレージデバイスの間のAIメモリパススルーは、RDMAを通じて実現されてもよい。具体的には、図26を参照すると、この出願の実施形態は、データ処理方法を提供する。当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、第1のストレージデバイスと、第2のストレージデバイスとを含む。当該方法は以下のステップを含む。
【0290】
S2601:第1のAIプロセッサは、第2のネットワークのネットワークリソース要求を第2のプロセッサに送信する。
【0291】
第1のAIプロセッサは、第2のネットワークのネットワークリソース要求を生成し、第2のネットワークのネットワークリソース要求を第1のネットワークインタフェースに送信してもよい。第1のネットワークインタフェースは、第2のネットワークのネットワークリソース要求を第2のプロセッサに送信してもよい。第2のネットワークのネットワークリソース要求は、他のAIパラメータを伝送するために、第2のAI装置の第2のネットワークのいくつかのネットワークリソースを占有するように要求するために使用される。第2のネットワークの要求は、他のAIパラメータの宛先アドレスを搬送してもよい。
【0292】
第2のネットワークのネットワークリソース要求はメモリRDMAアクセス要求でもよい。第2のネットワークのネットワークリソース要求は、RDMAを通じて第2のAIメモリにアクセスするように要求するために使用される。第2のネットワークの要求で搬送される宛先アドレスは、第2のAIメモリ内のアドレスでもよい。第2のネットワークの要求を受信した後に、第2のプロセッサは、第1のAIメモリと第2のAIメモリとの間にRDMAパスを確立してもよい。
【0293】
S2602:第1のAIプロセッサは、第1のAIメモリから他のAIパラメータを取得する。
【0294】
S2603:第1のAIプロセッサは、RDMAを通じて、第2のネットワークを通じて他のAIパラメータを第2のAIメモリに伝送する。
【0295】
第1のAIプロセッサは、他のAIパラメータを取得するために第1のAIメモリにローカルでアクセスし、他のAIパラメータを第1のAI装置内の第1のネットワークインタフェースに送信してもよい。第1のAI装置内の第1のネットワークインタフェースは、他のAIパラメータを第2のAI装置内の第1のネットワークインタフェースに送信してもよい。第2のAI装置内の第1のネットワークインタフェースは、他のAIパラメータを受信し、他のAIパラメータを第2のAIメモリに書き込んでもよい。このプロセスにおいて、第2のAI装置内の第2のAIプロセッサは、RDMAを通じて参加する必要がなく、それにより、第2のAIプロセッサの処理リソースが占有されることを防止し、転送性能を改善する。
【0296】
図27は、第2のネットワークを通じて2つのストレージデバイス内のAIメモリの間でデータパススルーを実現する概略図である。図27から、第2のネットワークがAIパラメータを転送するための新たな経路として使用でき、第1のストレージデバイス内の第1のAIメモリのAIパラメータは、RDMAを通じて、第1のネットワークを通じて第2のAIメモリに直接伝送でき、それにより、送信元ストレージデバイス内のAIメモリとターゲットストレージデバイス内のAIメモリとの間のデータパススルーを実現することが習得できる。
【0297】
この任意選択の方式では、AIパラメータは、RDMAを通じて、第1のAIメモリと第2のAIメモリとの間で交換できる。したがって、第1のAIプロセッサ及び第2のAIプロセッサの処理オーバヘッドが回避でき、AIパラメータは、第1のAIメモリから第2のAIメモリに直接到着でき、それにより、AIパラメータ交換を加速させ、AIパラメータ交換効率を改善する。
【0298】
任意選択で、AI装置がストレージデバイス内のメモリを借用することにより訓練を実行する場合、ストレージデバイス内のメモリは、AIパラメータをキャッシュしてもよい。異なるストレージデバイスの間のメモリパススルーは、RDMAを通じて実現されてもよく、異なるストレージデバイス内のメモリにキャッシュされたAIパラメータは、第2のネットワークを通じて交換されてもよい。具体的には、図28を参照すると、この出願の実施形態は、サービスデータ伝送方法を提供する。当該方法の相互作用主体は、第1のストレージデバイスと、第2のストレージデバイスとを含む。当該方法は以下のステップを含む。
【0299】
S2801:第1のAIプロセッサは、第2のネットワークのネットワークリソース要求を第2のプロセッサに送信する。
【0300】
S2802:第1のAIプロセッサは、第1のメモリから他のAIパラメータを取得する。
【0301】
第1のAIプロセッサは、第1のメモリにキャッシュされた他のAIパラメータを取得するために、高速相互接続ネットワークを通じて第1のメモリにアクセスしてもよい。
【0302】
S2803:第1のAIプロセッサは、RDMAを通じて、第2のネットワークを通じて他のAIパラメータを第2のメモリに伝送する。
【0303】
図29は、第2のネットワークを通じて2つのストレージデバイス内のメモリの間でAIパラメータパススルーを実現する概略図である。図29から、第2のネットワークがAIパラメータを転送するための新たな経路として使用でき、第1のストレージデバイス内の第1のメモリのAIパラメータは、RDMAを通じて、第1のネットワークを通じて第2のメモリに直接伝送でき、それにより、送信元ストレージノード内のメモリとターゲットストレージノード内のメモリとの間でAIパラメータパススルーを実現することが習得できる。
【0304】
この任意選択の方式では、AIパラメータは、RDMAを通じて第1のメモリと第2のメモリとの間で交換できる。したがって、第1のAIプロセッサ及び第2のAIプロセッサの処理オーバヘッドが回避でき、AIパラメータは、第1のメモリから第2のメモリに直接到着でき、それにより、AIパラメータ交換を加速させ、AIパラメータ交換効率を改善する。
【0305】
任意選択で、ストレージシステム内でデータセットが位置するストレージデバイスは、AI演算を実行するために管理装置を使用することによりスケジューリングされてもよい。詳細については、以下の方法の実施形態を参照する。
【0306】
図30は、この出願の実施形態によるデータ処理方法のフローチャートである。当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、管理装置と、第1のストレージデバイスとを含む。当該方法は以下のステップを含む。
【0307】
S3001:管理装置は、第1のジョブ要求を受信する。
【0308】
第1のジョブ要求は、データセットに基づいて訓練を実行するように要求するために使用される。データセットはサービスデータを含む。第1のジョブ要求は、データセットの識別子を含んでもよい。データセットの識別子は、データセットを示すために使用され、例えば、データセットのID又は名前でもよい。いくつかの実施形態では、クライアントは、第1のジョブ要求を生成し、第1のジョブ要求を管理装置に送信してもよい。管理装置は、クライアントから第1のジョブ要求を受信してもよい。第1のジョブ要求は、ユーザの入力操作によりトリガされてもよい。例えば、クライアントは、グラフィカルユーザインタフェースを表示してもよい。ユーザは、グラフィカルユーザインタフェースにおいてデータセットの識別子を入力してもよく、クライアントは、第1のジョブ要求を生成するために、入力されたデータセットの識別子を受信してもよい。
【0309】
S3002:管理装置は、第1のジョブ要求に基づいて訓練対象のデータセットの分布を決定する。
【0310】
管理装置は、第1のジョブ要求で搬送されたデータセットの識別子を取得するために、第1のジョブ要求を解析し、データセットのメタデータを取得するために、データセットの識別子に基づいてデータセットの識別子とデータセットのメタデータとの間のマッピング関係を照会してもよい。データセットのメタデータは、データセットのアドレスを示すために使用される。管理装置は、データセットのメタデータに基づいてデータセットの分布を決定してもよい。例えば、管理装置は、データセット内の各サービスデータが位置するストレージデバイスを照会し、ストレージデバイスリストを生成してもよい。ストレージデバイスリストはデバイス識別子を含む。デバイス識別子は、ターゲットストレージデバイスを識別するために使用される。ターゲットストレージデバイスは、データセット内のサービスデータの一部又は全部を記憶する。任意選択で、ストレージデバイスリストに複数のデバイス識別子が存在してもよく、複数のデバイス識別子を配置する順序が、対応するターゲットストレージデバイスに記憶されたデータセットのデータの量を示すために使用される。例えば、ストレージデバイスリストにおいて、最初のデバイス識別子に対応するターゲットデバイスは、データセット内の最大量のサービスデータを記憶し、ストレージデバイスリスト内の最後のデバイス識別子に対応するターゲットデバイスは、データセット内の最小量のサービスデータを記憶する。
【0311】
S3003:サービスデータが第1のストレージデバイスに分布していると決定したとき、管理装置は、第1の演算要求を第1のストレージデバイスに送信する。
【0312】
第1の演算要求は、サービスデータに対してAI演算を実行するように第1のAI装置に要求するために使用される。第1の演算要求は、データセットの識別子を含んでもよく、データセットの識別子は、データセット内のサービスデータが取得される必要があることを示すために搬送される。例えば、分散ストレージシステムがN個のストレージデバイス、すなわち、ストレージデバイス1~ストレージデバイスNを含み、データセットがストレージデバイス1、ストレージデバイス2及びストレージデバイス3に分布しており、管理装置がストレージデバイス1、ストレージデバイス2及びストレージデバイス3上でAI演算を実行することを選択してもよい場合、管理装置は、第1の演算要求をストレージデバイス1、ストレージデバイス2及びストレージデバイス3のそれぞれのAI装置に送信し、Nは正の整数である。
【0313】
S3004:第1のAI装置は、第1の演算要求に基づいて、第1のストレージデバイス内の第1のストレージ装置からサービスデータを取得する。
【0314】
第1のAI装置は、第1の演算要求で搬送されたデータセットの識別子を取得するために、第1の演算要求を解析し、データセットの識別子に基づいて第1のストレージ装置内のデータセットのアドレスを決定し、第1のストレージ装置に記憶されたデータセットのサービスデータの全部又は一部を取得するために、高速相互接続ネットワークを通じて第1のストレージ装置にアクセスしてもよい。
【0315】
S3005:第1のAI装置は、第1の演算結果を取得するために、サービスデータに対してAI演算を実行する。
【0316】
この任意選択の方式では、管理装置は、AI演算を提供するために、サービスデータが位置する第1のストレージデバイスを選択し、第1のストレージデバイスは、AI演算を実行するために、第1のストレージデバイス内の第1のストレージ装置を通じてサービスデータを取得してもよい。これは、サービスデータがストレージデバイスの間で移動することを防止し、サービスデータを取得するために他のストレージデバイスにアクセスすることにより引き起こされる遅延を回避し、サービスデータを取得する遅延を短縮し、AI演算を加速させる。
【0317】
任意選択で、管理装置は、第1のストレージデバイスの動作状態が指定の条件を満たすか否かを決定してもよい。第1のストレージデバイスの動作状態が指定の条件を満たすと管理装置が決定した場合、管理装置は、第1の演算要求を第1のストレージデバイスに送信する。
【0318】
動作状態は、ストレージデバイス内のメモリの空き空間、AIメモリの空き空間、AI演算能力ユニットの占有状態、AIプロセッサの占有率、ストレージデバイス内のプロセッサの占有率及びネットワークリソース使用率のうち1つ以上を含んでもよい。予め設定された条件は、以下の条件(1)~(5)のうちいずれか1つと、これらの組み合わせとを含む。
(1)ストレージデバイス内のメモリの空き空間が指定の空間閾値よりも大きいか否か
(2)AIメモリの空き空間が指定の空間閾値よりも大きいか否か
(3)AIプロセッサの占有率が指定の占有率閾値未満であるか否か
(4)ストレージデバイス内のプロセッサの占有率が指定の占有率閾値未満であるか否か
(5)ネットワークリソース使用率が指定の占有率閾値未満であるか否か
【0319】
この任意選択の方式では、選択された第1のストレージデバイスが現在占有されておらず、AI演算能力を提供できることが確保でき、それにより、占有されたストレージデバイスがAI演算を実行するために選択されるので、デバイスオーバヘッドが過度に高く、AI演算タスクが時間内に完了できないという問題を回避する。
【0320】
任意選択で、データセットが位置するストレージデバイスが占有されている場合、管理装置は、AI演算を実行するために、ストレージシステム内にあり且つデータセットに近いストレージデバイスをスケジューリングしてもよい。具体的には、図31を参照すると、この出願の実施形態は、データ処理方法のフローチャートを提供する。当該方法は、図1に示すシステム1に適用されてもよい。当該方法の相互作用主体は、管理装置と、第1のストレージデバイスと、第2のストレージデバイスとを含む。当該方法は以下のステップを含む。
【0321】
S3101:管理装置は、第2のジョブ要求を受信する。
【0322】
ステップS3101は、ステップS3001と同様である。詳細は、ここでは再び説明しない。
【0323】
S3102:管理装置は、第2のジョブ要求に基づいて訓練対象のデータセットの分布を決定する。
【0324】
ステップS3101は、ステップS3002と同様である。詳細は、ここでは再び説明しない。
【0325】
S3103:他のサービスデータが複数のストレージデバイスのうち第2のストレージデバイスに分布しているとき、管理装置は、第2のストレージデバイスの動作状態が指定の条件を満たすか否かを更に決定する。
【0326】
S3104:第2のストレージデバイスの動作状態が指定の条件を満たさないとき、管理装置は、第2の演算要求を第1のストレージデバイスに送信し、第1のストレージデバイスと第2のストレージデバイスとの間の距離は、指定の距離閾値未満である。
【0327】
いくつかの実施形態では、分散ストレージシステム内の各ストレージデバイスについて、管理装置は、ストレージデバイスの動作状態、及びストレージデバイスと第2のストレージデバイスとの間の距離を決定してもよく、管理装置は、第1のストレージデバイスを取得するために、各ストレージデバイスの動作状態、及びストレージデバイスと第2のストレージデバイスとの間の距離に基づいて、分散ストレージシステム内で、動作状態が指定の条件を満たし且つ第2のストレージデバイスまでの距離が指定の距離閾値未満であるストレージデバイスを決定してもよい。
【0328】
可能な実現方式では、管理装置は、コストベースの最適化(Cost-Based Optimization, 略称CBO)を通じて第1のストレージデバイスを決定してもよい。例えば、分散ストレージシステム内の各ストレージデバイスについて、管理装置は、ストレージデバイスの動作状態、ストレージデバイスと第2のストレージデバイスとの間の距離、及びストレージデバイスに記憶された第2のデータセット内のデータの量に基づいて、ストレージデバイスのコスト値を計算してもよい。コスト値は、ストレージデバイスがAI演算を実行することを可能にするオーバヘッドを示す。管理装置は、ストレージデバイスのコスト値に基づいて、第1のストレージデバイスとして機能するための、コスト値が指定の条件を満たすストレージデバイスを選択してもよい。このアルゴリズムによれば、データセットに最も近いストレージデバイスのコスト値は小さいので、データセットに最も近いストレージデバイスが、AI演算を開始するために選択されてもよい。例えば、重みx1及び重みy1は、ローカルストレージデバイス及びリモートストレージデバイスにそれぞれ割り当てられてもよく、x1はy1未満である。いずれかのストレージデバイスについて、ストレージデバイスに記憶された第2のデータセットのデータの量がxであり、ストレージデバイスに記憶されていない第2のデータセットのデータの量がyである場合、重みx1及び重みy1に基づいてx及びyに対して加重和が実行され、取得された加重和の値がストレージデバイスのコスト値として使用される。ストレージデバイスは、コスト値の昇順にソートされる。AI演算のためにn個のストレージデバイスが必要とされる場合、最初のn個のストレージデバイスが、第1のストレージデバイスとしてソート結果から選択される。例えば、ローカルにロードされたデータの重みは1に設定されてもよく、リモートにロードされたデータの重みは10に設定されてもよい。特定のストレージデバイスがデータセットの30%を記憶し、データセットの残りの70%がストレージデバイスに記憶されていない場合、ストレージデバイスのコスト値は30%×1+70%×10=7.3である。
【0329】
任意選択で、第1のストレージデバイスを選択した後に、管理装置は、推奨リストをクライアントに出力してもよい。推奨リストは、管理装置がAI演算を開始するストレージデバイスを推奨することを示す。推奨リストは、第1のストレージデバイスの識別子を含んでもよい。
【0330】
S3105:第1のAI装置は、第2の演算要求に基づいて第2のストレージデバイスから他のサービスデータを取得する。
【0331】
S3106:第1のAI装置は、第2の演算結果を取得するために、他のサービスデータに対してAI演算を実行する。
【0332】
この任意選択の方式では、データセットが位置するストレージデバイスが占有されている場合、管理装置は、AI演算を提供するために、データセットに近いストレージ装置を選択できる。これは、データセット伝送距離を短縮し、ノード間のサービスデータ移動を低減する。
【0333】
以下に、この出願のこの実施形態の適用シナリオの例について説明する。
【0334】
ディープラーニングの適用では、フィッティングを通じてニューラルネットワークを取得するために、通常では大量のデータを含むデータセットがモデル訓練のために必要とされる。例えば、図32は、モデル訓練の論理手順を示す。モデル訓練は、モデルロード段階と、データロード段階と、パラメータ初期化段階と、順方向伝搬段階と、損失演算段階と、逆方向伝搬段階と、パラメータ更新段階と、重み保存段階とを含んでもよい。モデルパラメータを取得するために大量の反復訓練が必要とされ、反復は数百~数万回実行される可能性があるので、パラメータ更新及び交換を実行するために大量のデータがロードされる必要があり、その結果、モデル訓練は非常に時間がかかる。ソフトウェアリソース及びハードウェアリソース十分に使用し、スケジューリング性能を改善し、データ伝送経路を最適化することは、モデル訓練にとって非常に重要であることが習得できる。
【0335】
この出願の実施形態において提供される方法によれば、モデル訓練の各段階が最適化できる。
【0336】
具体的には、モデルロード段階では、データ近傍のAI訓練を提供するために、図30及び図31における実施形態において提供される方法が使用されてもよい。具体的には、訓練を開始するために、データ近傍のAI装置が、モデル訓練に必要とされるデータのアドレスに基づいて訓練ノードとして選択されてもよい。
【0337】
データロード段階では、図7における実施形態、図8における実施形態、図9における実施形態、図12における実施形態及び図14における実施形態において提供される方法が、サービスデータ伝送経路を短縮し、近くのストレージに基づいてデータ読み取り/書き込み操作を実行するために使用されてもよい。さらに、メモリとAIメモリとの間の高速相互接続が、メモリとAIメモリとの間でRDMAパススルーを実現するために使用できる。
【0338】
順方向伝搬段階では、図18における実施形態において提供される方法が、高速相互接続ネットワークに基づいてプロセッサの演算能力とAIプロセッサの演算能力との間の協働を実現するために使用されてもよく、それにより、AI演算子の演算を加速させる。
【0339】
パラメータ更新段階では、RDMAパスを通じてAIパラメータを伝送するために、図26における実施形態において提供される方法及び図28における実施形態において提供される方法が、異なるストレージデバイス内のAIメモリの間のRDMAパスと、異なるストレージデバイス内のメモリの間のRDMAパスとを実現するために使用されてもよく、それにより、パラメータ交換を加速させる。
【0340】
図33は、この出願の実施形態によるAI訓練の論理アーキテクチャ図である。ユーザは、クライアント上で操作を実行し、AI訓練ジョブを入力してもよい。クライアントは、ジョブを呼び出してアプリケーションプログラミングインタフェース(Application Programming Interface, API)をサブミットするために、AI訓練ジョブを実行するように指示するための要求を生成し、要求をAIジョブ管理サービスに送信する。要求を受信した後に、AIジョブ管理サービスは、要求で搬送されたジョブを解析し、リソース要求を管理装置に送信する。管理装置がリソース要求を受信した後に、管理装置内のスケジューラは、管理された下位層の物理リソースプールから適切なストレージデバイスを選択し、選択されたストレージデバイス内のAI装置上で対応するAI訓練ジョブを開始する。選択されたストレージデバイス内のAI装置の演算能力は、AI訓練ジョブにより占有される。AI訓練ジョブが完了した後に、演算リソースが解放される。
【0341】
全ての上記の任意選択の技術的解決策は、この出願の任意選択の実施形態を形成するためにランダムに組み合わされてもよい。詳細は、ここでは再び説明しない。
【0342】
上記の実施形態の全部又は一部は、ソフトウェア、ハードウェア、ファームウェア又はこれらのいずれかの組み合わせを使用することにより実現されてもよい。ソフトウェアが実施形態を実現するために使用されるとき、実施形態の全部又は一部は、コンピュータプログラム製品の形式で実現されてもよい。コンピュータプログラム製品は、1つ以上のコンピュータプログラム命令を含む。コンピュータプログラム命令がコンピュータ上にロードされて実行されたとき、この出願の実施形態による手順又は機能が、全て或いは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク又は他のプログラム可能装置でもよい。コンピュータ命令は、コンピュータ読み取り可能記憶媒体に記憶されてもよく、或いは、コンピュータ読み取り可能記憶媒体から他のコンピュータ読み取り可能記憶媒体に伝送されてもよい。例えば、コンピュータプログラム命令は、有線又は無線方式でウェブサイト、コンピュータ、サーバ又はサービスデータセンタから他のウェブサイト、コンピュータ、サーバ又はサービスデータセンタに伝送されてもよい。コンピュータ読み取り可能記憶媒体は、コンピュータによりアクセス可能ないずれかの使用可能媒体、又は1つ以上の使用可能媒体を統合する、サーバ又はサービスデータセンタのようなサービスデータストレージデバイスでもよい。使用可能媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク又は磁気テープ)、光媒体(例えば、デジタルビデオディスク(digital video disc, DVD))、半導体媒体(例えば、ソリッドステートドライブ)等でもよい。
【0343】
当業者は、この明細書に開示された実施形態に記載の方法のステップ及びユニットが、電子ハードウェア、コンピュータソフトウェア又はこれらの組み合わせにより実現されてもよいことを認識し得る。ハードウェアとソフトウェアとの間の交換可能性を明確に説明するために、上記に、機能に従って実施形態の記載のステップ及び組成を一般的に説明している。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的解決策の特定の用途及び設計上の制約に依存する。当業者は、特定の用途毎に記載の機能を実現するために異なる方法を使用し得るが、実現方式がこの出願の範囲を超えるものであると考えられるべきではない。
【0344】
当業者は、便宜的で簡単な説明の目的で、上記に記載のシステム、装置及びユニットの詳細な動作プロセスについては、上記の方法の実施形態における対応するプロセスを参照することを明確に理解できる。詳細は、ここでは再び説明しない。
【0345】
この出願において提供されるいくつかの実施形態では、開示のシステム、装置及び方法は、他の方式で実現されてもよいことが理解されるべきである。例えば、上記に記載の装置の実施形態は、単なる例である。例えば、ユニット分割は、単なる論理的な機能分割であり、実際の実現方式の中では他の分割でもよい。例えば、複数のユニット又はコンポーネントは結合されてもよく或いは他のシステムに統合されてもよく、或いは、いくつかの特徴は無視されてもよく或いは実行されなくてもよい。さらに、表示又は議論された相互結合、直接結合又は通信接続は、いくつかのインタフェースを通じて実現されてもよく、装置又はユニットの間の間接結合又は通信接続は、電気形式、機械形式又は他の形式の接続でもよい。
【0346】
別個の部分として記載されるユニットは、物理的に分離していてもよく或いは分離していなくてもよく、ユニットとして表示される部分は、物理的なユニットでもよく或いは物理的なユニットでなくてもよく、1つの場所に位置してもよく或いは複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、この出願の実施形態の解決策の目的を達成するために、実際の要件に従って選択されてもよい。
【0347】
さらに、この出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、或いは、ユニットのそれぞれは、物理的に単独で存在してもよく、或いは、2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形式で実現されてもよく、或いは、ソフトウェア機能ユニットの形式で実現されてもよい。
【0348】
統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立した製品として販売又は使用されるとき、統合されたユニットは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、この出願の技術的解決策は本質的に、或いは、従来技術に寄与する部分又は技術的解決策の全部若しくは一部は、ソフトウェア製品の形式で実現されてもよい。コンピュータソフトウェア製品は記憶媒体に記憶され、この出願の実施形態に記載の方法のステップの全部又は一部を実行するようにコンピュータデバイス(パーソナルコンピュータ、サーバ又はネットワークデバイスでもよい)に指示するためのいくつかの命令を含む。上記の記憶媒体は、プログラムコードを記憶できるいずれかの媒体、例えば、USBフラッシュドライブ、取り外し可能ハードディスク、読み取り専用メモリ(read-only memory, ROM)、ランダムアクセスメモリ(random access memory, RAM)、磁気ディスク又は光ディスクを含む。
【0349】
上記の説明は、この出願の単なる具体的な実現方式であり、この出願の保護範囲を限定することを意図するものではない。この出願に開示された技術的範囲内で当業者により容易に理解される如何なる修正又は置換も、この出願の保護範囲に含まれるものとする。したがって、この出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【0350】
上記の実施形態の全部又は一部は、ソフトウェア、ハードウェア、ファームウェア又はこれらのいずれかの組み合わせを使用することにより実現されてもよい。ソフトウェアが実施形態を実現するために使用されるとき、実施形態は、全て或いは部分的にコンピュータプログラム製品の形式で実現されてもよい。コンピュータプログラム製品は、1つ以上のコンピュータプログラム命令を含む。コンピュータプログラム命令がコンピュータ上にロードされて実行されたとき、この出願の実施形態による手順又は機能が、全て或いは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク又は他のプログラム可能装置でもよい。コンピュータ命令は、コンピュータ読み取り可能記憶媒体に記憶されてもよく、或いは、コンピュータ読み取り可能記憶媒体から他のコンピュータ読み取り可能記憶媒体に伝送されてもよい。例えば、コンピュータプログラム命令は、有線又は無線方式でウェブサイト、コンピュータ、サーバ又はデータセンタから他のウェブサイト、コンピュータ、サーバ又はデータセンタに伝送されてもよい。コンピュータ読み取り可能記憶媒体は、コンピュータによりアクセス可能ないずれかの使用可能媒体、又は1つ以上の使用可能媒体を統合する、サーバ又はデータセンタのようなデータストレージデバイスでもよい。使用可能媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク又は磁気テープ)、光媒体(例えば、デジタルビデオディスク(digital video disc, DVD))、半導体媒体(例えば、ソリッドステートドライブ)等でもよい。
【0351】
当業者は、実施形態のステップの全部又は一部が、ハードウェア又は関連するハードウェアに命令するプログラムにより実現されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。上記の記憶媒体は、読み取り専用メモリ、磁気ディスク、光ディスク等でもよい。
【0352】
上記の説明は、この出願の単なる任意選択の実施形態であり、この出願を限定することを意図するものではない。この出願の真意及び原理から逸脱することなく行われる如何なる修正、等価置換又は改良も、この出願の保護範囲に含まれるものとする。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33