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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-523990ハードウェアアクセラレータサービスアグリゲーション
<>
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図1
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図2
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図3
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図4
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図5
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図6
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図7
  • 特表-ハードウェアアクセラレータサービスアグリゲーション 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-05
(54)【発明の名称】ハードウェアアクセラレータサービスアグリゲーション
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240628BHJP
【FI】
G06F9/50 150A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023572177
(86)(22)【出願日】2022-10-27
(85)【翻訳文提出日】2023-11-21
(86)【国際出願番号】 US2022047988
(87)【国際公開番号】W WO2023086210
(87)【国際公開日】2023-05-19
(31)【優先権主張番号】17/525,300
(32)【優先日】2021-11-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ケルカー,シュリカント
(72)【発明者】
【氏名】アダブ,ガールギー
(72)【発明者】
【氏名】シャーマ,ラクシュミ
(72)【発明者】
【氏名】ジャヤデバン,マノジ
(72)【発明者】
【氏名】パテル,パルビーン
(72)【発明者】
【氏名】ランガナサン,パルササラシー
(57)【要約】
本開示は、ローカルハードウェア(HW)アクセラレータカードおよびリモートHWアクセラレータカードの能力を発見するためのシステム、方法、およびコンピュータ可読媒体を含む。ローカルハードウェア(HW)アクセラレータカードは、通信インタフェースを介して、ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを提供することができる。アクセラレーションサービスのリスティングは、ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供された第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供された第2組のアクセラレーションサービスとを含むことができる。第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義するワークロード命令が、計算装置のプロセッサから受信され得る。ワークロード命令は、リモートHWアクセラレータカードに転送され得る。
【特許請求の範囲】
【請求項1】
ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサにより、通信インタフェースを介して、前記ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを提供するステップであって、アクセラレーションサービスの前記リスティングが、前記ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、ステップと、
前記1つまたは複数のプロセッサにより、計算装置のプロセッサからワークロード命令を受信するステップであって、前記ワークロード命令が、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、ステップと、
前記1つまたは複数のプロセッサにより、前記ワークロード命令を前記リモートHWアクセラレータカードに転送するステップと
を含む、方法。
【請求項2】
前記1つまたは複数のプロセッサにより、前記リモートHWアクセラレータカードから処理済みワークロードを受信するステップであって、前記処理済みワークロードが、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つにより処理した後の前記ワークロードである、ステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のプロセッサにより、前記処理済みワークロードを前記計算装置の前記プロセッサに転送するステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
アクセラレーションサービスの前記リスティングが、前記1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される、請求項1に記載の方法。
【請求項5】
前記1つまたは複数のプロセッサ上で実行する前記ASMが、前記リモートHWアクセラレータカード上で実行する別のASMと通信する、請求項4に記載の方法。
【請求項6】
前記通信が、前記ASMが前記ワークロード命令を前記別のASMに転送することを含む、請求項5に記載の方法。
【請求項7】
前記通信が、前記ASMが前記別のASMに前記第2組のアクセラレーションサービスのリスティングを要求することを含む、請求項5に記載の方法。
【請求項8】
前記ASMが、アクセラレーションサービスの前記リスティングから不健全なアクセラレーションサービスを識別し、取り除く、請求項5に記載の方法。
【請求項9】
前記不健全なアクセラレーションサービスを識別することが、前記ASMにより、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つによる前記ワークロード命令の処理の失敗を決定することを含む、請求項8に記載の方法。
【請求項10】
前記不健全なアクセラレーションサービスを取り除くことが、
前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つを不健全としてマーキングすること、または
前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つをアクセラレーションサービスの前記リスティングから除去すること
を含む、請求項9に記載の方法。
【請求項11】
前記ワークロード命令の処理の前記失敗を決定した後で、前記ASMにより、更新済みワークロード命令を、前記異なるHWアクセラレータの前記アクセラレーションサービスのうちの少なくとも1つにより処理するための異なるHWアクセラレータカードに送信するステップ
をさらに含む、請求項10に記載の方法。
【請求項12】
前記ワークロード命令が、少なくとも1つの他のリモートHWアクセラレータカードの少なくとも1つのアクセラレーションサービスにより処理することをさらに定義する、請求項1に記載の方法。
【請求項13】
通信インタフェースと、
1つまたは複数のプロセッサと1つまたは複数のアクセラレータとを含むローカルハードウェア(HW)アクセラレータカードであって、前記1つまたは複数のプロセッサが、
前記通信インタフェースを介して、前記ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを受信することであって、アクセラレーションサービスの前記リスティングが、前記ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、受信することと、
計算装置のプロセッサからワークロード命令を受信することであって、前記ワークロード命令が、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、受信することと
前記ワークロード命令を前記リモートHWアクセラレータカードに転送することと
を行うように構成される、ローカルハードウェア(HW)アクセラレータカードと
を備えるシステム。
【請求項14】
前記1つまたは複数のプロセッサが、
前記リモートHWアクセラレータカードから処理済みワークロードを受信することであって、前記処理済みワークロードが、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つにより処理した後の前記ワークロードである、受信すること
を行うようにさらに構成される、請求項13に記載のシステム。
【請求項15】
前記1つまたは複数のプロセッサが、前記処理済みワークロードを前記計算装置の前記プロセッサに転送すること
を行うようにさらに構成される、請求項14に記載のシステム。
【請求項16】
アクセラレーションサービスの前記リスティングが、前記1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される、請求項13に記載のシステム。
【請求項17】
前記1つまたは複数のプロセッサ上で実行する前記ASMが、前記リモートHWアクセラレータカード上で実行する別のASMと通信する、請求項16に記載のシステム。
【請求項18】
前記通信が、前記ASMが前記ワークロード命令を前記別のASMに転送することを含む、請求項17に記載のシステム。
【請求項19】
前記通信が、前記ASMが前記別のASMに前記第2組のアクセラレーションサービスのリスティングを要求することを含む、請求項17に記載のシステム。
【請求項20】
前記ASMが、アクセラレーションサービスの前記リスティングから不健全なアクセラレーションサービスを識別し、取り除く、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年11月12日に出願された米国特許出願第17/525,300号の継続出願であり、その開示は、参照することにより本明細書に組み込まれる。
【背景技術】
【0002】
背景
ほとんどのシステムにおいて、計算装置(computing device)のコンポーネントを含む計算装置および/またはオペレーティングシステムを含む、計算装置上で実行するソフトウェアが、PCIeバスなどの通信インタフェースによって計算装置に接続されたハードウェアアクセラレータカード(hardware accelerator card)によって提供される機能性および能力を発見することは困難である。これらの問題を回避するには、プロセッサが、特定のハードウェアアクセラレータカードと通信するために、ドライバなどのソフトウェアでハードコード化され得る。しかしながら、特定のハードウェアアクセラレータカードと通信するためにプロセッサを必要なソフトウェアでハードコード化すると、プロセッサはそうした特定のハードウェアアクセラレータカードのみに限定される。したがって、プロセッサは、他のハードウェアアクセラレータカード、またはプロセッサが生産された後で開発されたハードウェアアクセラレータカードの機能性および能力を活用することができない。
【0003】
さらに、いくつかのハードウェアアクセラレータカードは、これらのカードの機能性および能力を計算装置のオペレーティングシステム内の別々の装置として公表することがある。これに関して、ハードウェアアクセラレータカードが、PCIeバスなどの通信インタフェースによって計算装置に接続されるときに、オペレーティングシステムは、接続を検出するか、または他の方法で接続を通知され、ハードウェアアクセラレータカードの各機能性および能力のリストを、予め定義されたクラスおよびサブクラスに従ってオペレーティングシステム内の個別装置として作ることができる。オペレーティングシステム内にリストを作られた装置に基づいて、計算装置は、ハードウェアアクセラレータカードの能力および機能性を使用することができる。
【0004】
ハードウェアアクセラレータカードの能力および機能性は向上しておりかつより専門化してきているので、これらの新しい能力および機能性は、現在のオペレーティングシステムによって提供されるクラスおよびサブクラスによって明瞭には識別されない。したがって、いくつかのオペレーティングシステムは、ハードウェアアクセラレータカードによって提供される能力および機能性を示すことができるが、ハードウェアアクセラレータカードの能力および機能性のすべてを識別することはできないことがある。さらに、ハードウェアアクセラレータカードの能力および機能性のうちのいくつかは、オペレーティングシステム内で認識されないかつ/または明瞭に識別されないことがある。したがって、計算装置は、利用可能なハードウェアアクセラレータカードの特徴および能力のすべてを活用することができないことがあり、認識すらできないこともある。
【0005】
システムには、通常、通信インタフェースへの限られた数の接続部が設けられる。例えば、PCIeバスを含むシステムは、ハードウェアアクセラレータカードをPCIeバスに接続するPCIeスロットを少数しか有することができない。限られた数の接続部は、費用制約条件によるものであり得る。これに関して、システムに付加される各追加接続部は、物理的ハードウェアの費用を増大させ、全製造コストを増すことがある。加えて、電力可用性などの技術的な限界もまた、システムに接続され得る装置の数を制限し得る。例えば、あるシステムは、ハードウェアアクセラレータカード用の5つの接続部を含むことができるが、電源は、電力を2つのハードウェアアクセラレータカードにしか同時に供給することができないことがある。したがって、システムは、システムに接続され得るハードウェアアクセラレータカードの数が限られているために、ハードウェアアクセラレータカードによって提供されるアクセラレーションサービス(acceleration service)にアクセスするシステムの能力が制限され得る。
【発明の概要】
【0006】
概要
本明細書に記載の技術は、ハードウェアアクセラレータカードのアクセラレータによって提供されるアクセラレーションサービスを集め、公表するサービスアグリゲーション(service aggregation)のためのシステムおよび方法に関する。サービスアグリゲーションを用いて、ハードウェアアクセラレータカードは、他のハードウェアアクセラレータカードと通信して、ローカルまたはリモートで接続され得るこれらの他のハードウェアアクセラレータカードのアクセラレータによって提供されるアクセラレーションサービスを集め、公表することができる。集められ、公表されたアクセラレーションサービスは、ハードウェアアクセラレータカードのアクセラレータがサービスアグリゲーションを実行することによって提供されるアクセラレーションサービスも含むことができる。次いで、ハードウェアアクセラレータカード、ならびに他のローカルまたはリモートで接続されたハードウェアアクセラレータカードによって提供されるアクセラレーションサービスは、システムによって活用され得る。
【0007】
本開示の一態様は方法に関する。本方法は、ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサにより、通信インタフェースを介して、ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを提供するステップであって、アクセラレーションサービスのリスティングが、ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、ステップと、1つまたは複数のプロセッサにより、計算装置のプロセッサからワークロード命令を受信するステップであって、ワークロード命令が、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、ステップと、1つまたは複数のプロセッサにより、ワークロード命令をリモートHWアクセラレータカードに転送するステップと、を含むことができる。
【0008】
本開示の別の態様は、通信インタフェースと、1つまたは複数のプロセッサと1つまたは複数のアクセラレータとを含むローカルハードウェア(HW)アクセラレータカードと、を備えるシステムに関する。1つまたは複数のプロセッサは、通信インタフェースを介して、ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを受信することであって、アクセラレーションサービスのリスティングが、ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、受信することと、計算装置のプロセッサからワークロード命令を受信することであって、ワークロード命令が、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、受信することと、ワークロード命令をリモートHWアクセラレータカードに転送することと、を行うように構成され得る。
【0009】
本開示の別の態様は、プログラムのコンピュータ可読命令が保存される非一時的有形コンピュータ可読記憶媒体に関し、命令は、1つまたは複数の計算装置によって実行されるときに、1つまたは複数の計算装置にある方法を実行させる。本方法は、ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサにより、通信インタフェースを介して、ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを提供するステップであって、アクセラレーションサービスのリスティングが、ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、ステップと、1つまたは複数のプロセッサにより、計算装置のプロセッサからワークロード命令を受信するステップであって、ワークロード命令が、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、ステップと、1つまたは複数のプロセッサにより、ワークロード命令をリモートHWアクセラレータカードに転送するステップと、を含むことができる。
【0010】
いくつかの例では、処理済みワークロードがリモートHWアクセラレータカードから受信されてもよく、処理済みワークロードは、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つにより処理した後のワークロードである。
【0011】
場合により、処理済みワークロードは計算装置のプロセッサに転送され得る。
いくつかの例では、アクセラレーションサービスのリスティングは、1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される。
【0012】
場合により、1つまたは複数のプロセッサ上で実行するASMは、リモートHWアクセラレータカード上で実行する別のASMと通信する。
【0013】
場合により、ASMはワークロード命令を別のASMに転送する。
場合により、ASMは別のASMに第2組のアクセラレーションサービスのリスティングを要求する。
【0014】
場合により、ASMは、アクセラレーションサービスのリスティングから不健全なアクセラレーションサービスを識別し、取り除く。
【0015】
いくつかの例では、不健全なアクセラレーションサービスを識別することは、ASMにより、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つによるワークロード命令の処理の失敗を決定することを含む。
【0016】
いくつかの例では、不健全なアクセラレーションサービスを取り除くことは、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つを不健全としてマーキングすること、または、第2組のアクセラレーションサービスのアクセラレーションサービスのうちの少なくとも1つをアクセラレーションサービスのリスティングから除去することを含む。
【0017】
場合により、ワークロード命令の処理の失敗を決定した後で、ASMにより、更新済みワークロード命令を、異なるHWアクセラレータのアクセラレーションサービスのうちの少なくとも1つによって処理するための異なるHWアクセラレータカードに送信すること。
【0018】
場合により、ワークロード命令は、少なくとも1つの他のリモートHWアクセラレータカードの少なくとも1つのアクセラレーションサービスにより処理することをさらに定義する。
【図面の簡単な説明】
【0019】
図1】本開示の諸態様によるシステム例の説明図である。
図2】本開示の諸態様によるシステム例の別の説明図である。
図3】本開示の諸態様によるアクセラレーションサービスのリスティング例の説明図である。
図4】本開示の諸態様によるネットワーク化システム例の説明図である。
図5】本開示の諸態様によるアクセラレーションサービスのリスティング例の別の説明図である。
図6】本開示の諸態様によるハードウェアアクセラレータカードにアクセラレーションサービスを要求するためのプロセス例の流れ図である。
図7】本開示の諸態様による、ハードウェアアクセラレータカードにアクセラレーションサービスを要求し、アクセラレーションサービスを活用するワークロードを提供するためのプロセス例の別の流れ図である。
図8】本開示の諸態様によるリモートハードウェアアクセラレータカードおよびローカルハードウェアアクセラレータカードにアクセラレーションサービスを要求するためのプロセス例の流れ図である。
【発明を実施するための形態】
【0020】
詳細な説明
本明細書に記載の技術は、ハードウェア(HW)アクセラレータカードのアクセラレータによって提供されるアクセラレーションサービスを集め、公表するサービスアグリゲーションのためのシステムおよび方法に関する。サービスアグリゲーションを用いて、コンピュータ装置に装着されたHWアクセラレータカードは、アクセラレーションサービスをローカルおよびリモートで接続されたHWアクセラレータカードから計算装置に供給および公表し得る。本明細書にさらに記述されるように、計算装置内のHWアクセラレータカードの計算コア上で実行するソフトウェアは、通信インタフェースを介して計算装置にローカルで接続された他のHWアクセラレータカードおよび/または計算装置にリモートでネットワーク接続される他のHWアクセラレータカードと通信するために、プレコンフィギュレーションファイルを発見または使用することができる。次いで、計算装置は、計算装置に装着されたHWアクセラレータカードを通じて他のHWアクセラレータカードと通信することができる。したがって、計算装置は、任意の数のローカルまたはリモートで接続されたHWアクセラレータカードのアクセラレーションサービスをうまく利用することができる。
【0021】
アクセラレーションサービスを発見することの不足を克服するために、本明細書に記載の技術は、HWアクセラレータカード上のアクセラレータによって提供され得るアクセラレーションサービスに対応する識別子の標準化リスティングを使用する。これに関して、各HWアクセラレータカードは、カード上のアクセラレータによって提供されるアクセラレーションサービスに対応する識別子のリスティングを保存することができる。識別子は現在使用されている装置のクラスおよびサブクラスよりも細かい粒度を提供することができるので、HWアクセラレータカードからリスティングを取得するプロセッサは、HWアクセラレータカード上のアクセラレータによって提供されるより多くのアクセラレータサービスを決定し、活用することができるようになる。
【0022】
本明細書で使用される場合、「アクセラレーションサービス」という用語は、HWアクセラレータカードのアクセラレータによって提供される能力および機能性を指す。HWアクセラレータカードの「アクセラレーションサービス」への言及は、そのHWアクセラレータカード上のアクセラレータのアクセラレーションサービスを指す。アクセラレーションサービスは、アクセラレータがデータの処理を制御するために活用できる能力および機能性を含み得、これを本明細書では制御プレーンアクセラレーションサービスと呼ぶ。アクセラレーションサービスはまた、アクセラレータがデータを処理するために活用できる能力および機能性を含み得、これを本明細書ではデータプレーンアクセラレーションサービスと呼ぶ。例えば、アクセラレータは、ホスト(計算装置)上のメモリとアクセラレータとの間でメモリを共有するための制御および/または方針を提供するアクセラレーションサービスを支援することができる。この制御プレーンアクセラレーションサービスは、アクセラレーションサービスとして識別および通信することができる。
【0023】
各HWアクセラレータカードは多くのアクセラレータを有することができるので、各HWアクセラレータは、同じ能力および機能性ならびに/あるいは異なる能力および機能性を有する多くのアクセラレーションサービスを提供することができる。さらに、各アクセラレータは、複数の機能および能力を含むことができる。
【0024】
システムの例
図1は、本明細書に記載の特徴が実装され得る計算装置110のアーキテクチャの例を示す。この例は、本明細書に記載の特徴の開示または有用性の範囲を限定すると見なされるべきではない。計算装置110は、サーバ、パーソナルコンピュータ、または他のそのようなシステムとすることができる。計算装置110のアーキテクチャは、プロセッサ112、メモリ114、およびハードウェアアクセラレータカード118を含む。
【0025】
プロセッサ112は、1つまたは複数の汎用プロセッサ、例えば中央処理装置(CPU)など、ならびに/あるいは1つまたは複数の専用プロセッサ、例えば特定用途向け集積回路(ASIC)やフィールドプログラマブルゲートアレイ(FPGA)など、を含むことができる。プロセッサ112は、1つまたは複数のマイクロプロセッサ(uP)、1つまたは複数のマイクロコントローラ(uC)、1つまたは複数のデジタル信号プロセッサ、あるいはこれらの任意の組合せを含むが、これらに限定されるものではない任意のタイプのものとすることができる。プロセッサは、1つまたは複数のレベルのキャッシング、1つまたは複数のプロセッサコア、および1つまたは複数のレジスタを含むことができる。各プロセッサコアは、演算論理ユニット(ALU)、浮動小数点演算ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはこれらの任意の組合せを含むことができる。プロセッサ112は、データ記憶装置に含まれ得るコンピュータ可読プログラム命令、例えば、メモリ114に保存された命令117、および/または本明細書に記載の他の命令などを実行するように構成され得る。
【0026】
メモリ114は、プロセッサ112によって実行され得る命令117を含む、プロセッサ112によりアクセス可能な情報を保存することができる。メモリは、プロセッサ112によって取得、操作、または保存され得るデータ116も含むことができる。メモリ114は、プロセッサ112によりアクセス可能な情報を保存することができる一種の非一時的コンピュータ可読媒体、例えば、ハードドライブ、ソリッドステートドライブ、テープドライブ、光学式記憶装置、メモリカード、ROM、RAM、DVD、CD-ROM、書込み可能メモリ、読出し専用メモリなどであり得る。
【0027】
命令117は、プロセッサ112によって直接実行される機械コードなどの命令集合、またはプロセッサ112によって間接的に実行されるスクリプトなどの命令集合とすることができる。これに関して、「命令」、「ステップ」、および「プログラム」という用語は、本明細書では交換可能に使用することができる。命令117は、プロセッサ112で直接処理するためのオブジェクトコード形式で、あるいは、オンデマンドで解釈されるかまたは予めコンパイルされる独立したソースコードモジュールのスクリプトまたはコレクションを含む他種のコンピュータ言語で保存することができる。
【0028】
データ116は、命令117または他のそのような命令に従ってプロセッサ112によって取得、保存、または修正され得る。例えば、システムおよび方法は特定のデータ構造によって限定されるものではないが、データ116は、分散ストレージシステム内のコンピュータレジスタに、複数の異なるフィールドおよびレコード、またはドキュメントを有する構造、あるいはバッファとして保存され得る。データ116は、以下に限定されるものではないが、2進値、ASCIIまたはUnicodeなどのコンピュータ可読形式でフォーマットすることもできる。さらに、データ116は、数字、記述テキスト、独自のコード、ポインタ、他のネットワーク場所を含む、他のメモリに保存されたデータへの参照などの関連情報、または関連データを計算する機能によって使用される情報、を識別するのに十分な情報を含むことができる。
【0029】
計算装置は、ハードウェア(HW)アクセラレータカード118をさらに含むことができる。ハードウェアアクセラレータカード118は、特定の種類のタスクを効率的に処理するように構成された任意の装置とすることができる。HWアクセラレータカードのいくつかの例としては、ネットワークアクセラレータカード、ビデオトランスコーディングアクセラレータカード、セキュリティ機能アクセラレータカード、暗号作成アクセラレータカード、音響処理アクセラレータカード、人工知能アクセラレータカード、などがある。これらのHWアクセラレータカードはそれぞれ、圧縮、暗号化、コード変換、ハッシュ生成、グラフィック処理、シミュレーション、などの特定のアクセラレーションサービスを提供するように構成され得る。いくつかのHWアクセラレータカードは、圧縮や暗号化などの複数のアクセラレーションサービス、またはアクセラレーションサービスの任意の他の組合せを提供するように構成され得る。
【0030】
計算装置110は、ネットワークインタフェースカード119も含むことができる。ネットワークインタフェースカードは、図4を参照して本明細書に記述されるネットワーク470などのネットワークの他のノードと直接かつ間接的に通信することができる任意の装置とすることができる。
【0031】
図1は、プロセッサ112、メモリ114、HWアクセラレータカード118、およびネットワークインタフェース119を同じブロック内にあるものとして機能的に説明しているが、プロセッサ112、メモリ114、HWアクセラレータカード118、およびネットワークインタフェース119は、同じ物理的ハウジング内に保管されてもよいし、そうでなくてもよい。例えば、命令117およびデータ116の一部は、取外し可能なCD-ROM、および読出し専用DRAMチップ内のその他に保存され得る。命令およびデータの一部または全部が、プロセッサ112から物理的に遠く離れているが、依然としてプロセッサ112によりアクセス可能な場所に保存され得る。さらに、図1は、計算装置110を、ただ1つのプロセッサ112、メモリ114、ネットワークインタフェース119、およびHWアクセラレータカード118を含むものとして説明しているが、計算装置110は、任意の数のプロセッサ、メモリ、ネットワークインタフェース、およびHWアクセラレータカードを含むことができる。同様に、プロセッサ120は、実際にはプロセッサの集合体を含むことができ、これらのプロセッサは、並列に動作してもよく、そうでなくてもよい。
【0032】
図2を参照すると、HWアクセラレータカード118は、計算コンプレックス212、メモリ214、ならびにアクセラレータ228a、228b、および228cを含むことができる。計算コンプレックスは、1つまたは複数の計算ユニット213を含むことができる。計算コンプレックスは、例えば、処理タスクをアクセラレータ228a~228cに分配すること、プロセッサ112などの計算装置110内の他の装置と通信すること、などにより、ハードウェアアクセラレータの他のコンポーネントの一般動作を制御することができる。場合により、計算コンプレックスは、本明細書に記載されているように、サービスアグリゲーションを調整するか、または他の方法で支援することができる。
【0033】
計算コンプレックス212の1つまたは複数の計算ユニットは、1つまたは複数の汎用プロセッサおよび/または専用プロセッサを備えることができる。典型的には、ハードウェアアクセラレータカードの計算ユニット213は、ARMまたはMIPSベースの命令セットを実行することができる、特定用途向け集積回路(ASIC)やフィールドプログラマブルゲートアレイ(FPGA)などの1つまたは複数の専用プロセッサとすることができるが、他の命令セットが使用されてもよい。場合により、計算ユニット213は市販のプロセッサでもよい。
【0034】
アクセラレータ228a~228cはそれぞれ、特定のアクセラレーションサービスを提供することができる1つまたは複数のプロセッサから構成され得る。例えば、各アクセラレータは、圧縮、暗号化、コード変換、ハッシュ生成、グラフィック処理、シミュレーションなどの特定のアクセラレーションサービスを提供するように構成され得る。いくつかのHWアクセラレータカードは、圧縮や暗号化などの複数のアクセラレーションサービス、またはアクセラレーションサービスの任意の他の組合せを提供するように構成され得る。アクセラレータの1つまたは複数のプロセッサは、使用される1つまたは複数の専用プロセッサ、例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、専用のプロセッサなどとすることができる。アクセラレータ228a~228cを含む3つのアクセラレータが図2に示されているが、HWアクセラレータカードは任意の数のアクセラレータを含むことができる。先に説明したように、各個々のアクセラレータは、複数のアクセラレーションサービス(例えば、複数の機能および/または能力)を提供するように構成され得る。
【0035】
再び図2を参照すると、HWアクセラレータカードはメモリ214を含む。メモリ214は、メモリ214が、プロセッサ120によりアクセス可能な情報を保存することができる任意の種類の非一時的コンピュータ可読媒体、例えば、ハードドライブ、ソリッドステートドライブ、テープドライブ、光学式記憶装置、メモリカード、ROM、RAM、DVD、CD-ROM、書込み可能メモリ、読出し専用メモリなどであり得るという点で、メモリ114と比較することができる。メモリ214は、計算コンプレックス212および/またはアクセラレータ228a~228cの計算ユニット213によって実行され得る命令217を含む、計算コンプレックス212および/またはアクセラレータ228a~228cによりアクセス可能な情報を保存することができる。図示されていないが、各アクセラレータ228~228cは、それ自体のメモリ、ならびに/あるいは計算コンプレックス212によって割り当てられたタスクを実行するためのデータおよび命令を保存するための共有メモリのプールを有することができる。
【0036】
命令217は、アクセラレーテッドサービスマネージャ(ASM)プログラム219を含むことができる。本明細書にさらに記載されているように、ASM219は、HWアクセラレータカード118のサービスアグリゲーションを制御するか、または他の方法で支援するために、計算コンプレックスの1つまたは複数の計算ユニット213によって実行され得る。
【0037】
メモリ214内のデータ216は、命令217または他のそのような命令に従って計算コンプレックス212および/またはアクセラレータ228a~228cによって取得、保存、または修正され得る。図2にさらに示すように、データ216は、1つまたは複数のアクセラレーションサービスリスティング218を含むことができる。アクセラレーションサービスリスティング218は、各アクセラレータ228a~228cによって提供されたアクセラレーションサービスのリストを含むことができる。アクセラレーションサービスリスティング218は、標準化された形をとることができる。これに関して、各特定のアクセラレーションサービスには、特定の一意の識別子が割り当てられ得る。あるアクセラレーションサービスを有するすべてのアクセラレータが、アクセラレーションサービスのリスティング内に、そのあるアクセラレーションサービスに関連する一意の識別子を含むことになる。
【0038】
図3は、メモリ214に保存されているものとしてのリスティング例328a~328cを示し、リスティング例328a~328cはアクセラレータ228a~228cにそれぞれ対応する。これに関して、メモリ214は、HWアクセラレータカード118上の各アクセラレータのためのリスティングを含む。図示のように、リスティング328aは、機能1、能力1、機能3、および機能5を含む一意の識別子によって識別された通り、アクセラレータ228aによって提供されたアクセラレーションサービスを識別する。同様に、アクセラレータ228bは、3つのアクセラレーションサービスを提供することができ、各アクセラレーションサービスは、リスティング328b内で、機能1、機能5、および能力9を含む、リスティング328bの一意の識別子によって識別される。アクセラレータ228cは、2つのアクセラレーションサービスを提供することができる。これら2つのアクセラレーションサービスはそれぞれ、リスティング328cにおいて、能力9および機能5を含む一意の識別子によって識別される。
【0039】
図3にさらに示すように、共通のアクセラレーションサービスを提供するアクセラレータは、アクセラレータのそれぞれのリスティング内の同じ一意の識別子に関連することができる。例えば、機能1は、アクセラレータ228aおよび228bが実行することができる特定の機能に関連する一意の識別子である。したがって、リスティング328aおよび328bは、同じ一意の識別子の機能1を含む。同様に、能力9は、アクセラレータ228bおよび228cの特定の能力に関連する一意の識別子である。したがって、リスティング328bおよび32cは、能力9の同じ一意の識別子を含む。図3における一意の識別子は、可能な識別子の例にすぎない。識別子は、数字、文字、シンボルなどを含む任意の値または他のそのようなインジケータを含むことができる。
【0040】
リスティング328a~328cは、HWアクセラレータカード118のアクセラレータに関連する一意の識別子のリストを作るための可能な形式の例である。いくつかの例では、アクセラレータのリスティングは、スプレッドシートまたはデータベースなどの複合リスティングに保存され得る。例えば、複合リスティングは、各アクセラレータとそのアクセラレータによって提供されるアクセラレーションサービスに関連する一意の識別子とを識別することができる。同様に、リスティングは、アクセラレータに従って分類され得る。例えば、第1のリスティングは、第1組のアクセラレータ用の複合リスティングを含むことができ、第2のリスティングは、第2組のアクセラレータ用の複合リスティングを含むことができる。他のデータがリスティングに含められてもよい。図2および図3は、リスティングをメモリ216に保存されるものとして示しているが、リスティングは、1つまたは複数のアクセラレータのメモリに保存されてもよい。
【0041】
図示されていないが、管理者が、アクセラレーションサービスおよびアクセラレーションサービス用の関連する一意の識別子のリポジトリを維持することができる。管理者は、個人(複数可)、会社、会社の集合体、標準的な組織(複数可)などとすることができる。リポジトリを維持することに加えて、管理者は、一意の識別子を各アクセラレーションサービスに割り当て、開発されるか、受信されるか、または他の方法で要求されるときに、追加のアクセラレーションサービスおよび対応する一意の識別子を追加することもできる。アクセラレーションサービスおよび関連する一意の識別子のリポジトリを提供することにより、アクセラレーションサービスを示すために使用される識別子は、HWアクセラレータカードが異なる供給業者によって製造されるときにも、複数のHWアクセラレータカードにわたって一貫することができる。
【0042】
再び図2を参照すると、プロセッサ112は、通信インタフェースおよびプロトコルを使用してハードウェアアクセラレータカード118と直接通信することができる。例えば、プロセッサ(複数可)112は、PCIeインタフェース260を使用してハードウェアアクセラレータカード(複数可)と通信することができる。図2はPCIeインタフェース260を示しているが、他の通信インタフェースおよびプロトコルが使用されてもよい。例えば、プロセッサ(複数可)112は、CANインタフェースおよびプロトコル、SPIインタフェースおよびプロトコル、USBインタフェースおよびプロトコル、eSPIインタフェースおよびプロトコル、イーサネットインタフェースおよびプロトコル、IDEインタフェースおよびプロトコル、あるいは他のそのようなインタフェースおよびプロトコルのうちの1つまたは複数を使用して、HWアクセラレータカード(複数可)118と通信することができる。
【0043】
PCIeインタフェース260を経由するプロセッサ112とHWアクセラレータカード118との間の通信など、通信インタフェースを経由する装置相互間の通信は、計算装置110上で実行するオペレーティングシステムを介して制御され得る。これに関して、オペレーティングシステムは、PCIeインタフェース260に装着された装置相互間に通信チャネルを設けるためにハンドルをセットアップすることができる。場合により、オペレーティングシステムは、PCIeインタフェース260に接続された異なる装置の間の通信チャネルを閉じることもできる。
【0044】
図1または図2には示されていないが、計算装置110は、表示装置などの、パーソナルコンピュータおよび/またはサーバ内に通常見られる他のコンポーネント、例えば、スクリーン、プロジェクタ、タッチスクリーン、小型LCDスクリーン、テレビジョン、またはプロセッサ112によって処理された情報を表示するように動作可能であり得る電気装置などの別の装置を有するモニタを含むことができる。計算装置110はスピーカも含むことができる。計算装置110は、1つまたは複数のユーザ入力装置、例えばマウス、キーボード、タッチスクリーン、マイクロフォンなども含むことができる。計算装置110は、前述したコンポーネントのいくつかまたはすべてを共に互いに接続するためのハードウェアも含むことができる。
【0045】
図4は、ネットワーク370を介して互いに接続された計算装置410、420、430、440を含むネットワーク化計算システム400を示す。計算装置310~340はそれぞれ、計算装置110と比較され得る。明瞭にするために、図4は、計算装置410~440を、それぞれHWアクセラレータカード418、428、438、448およびネットワークインタフェースカード419、429、439、449を含むものとして示す。しかしながら、各計算装置410~440は、計算装置110と同じまたは異なるコンポーネント、例えば、1つまたは複数のプロセッサ、メモリ、HWアクセラレータカード、および/またはネットワークインタフェースなど、ならびに、通常はコンピュータ内に見られるか、または他の方法でコンピュータに接続された他のコンポーネントを含むことができる。
【0046】
ネットワーク470は、ネットワークがインターネット、ワールドワイドウェブ、特定のイントラネット、ワイドエリアネットワーク、またはローカルネットワークの一部となり得るように、様々なプロトコルおよびシステムを含むことができる。ネットワークは、イーサネット、WiFiおよびHTTPなどの標準通信プロトコル、1つまたは複数の会社に所有権があるプロトコル、ならびに前述のプロトコルの様々な組合せを利用することができる。情報が上述のように送信または受信されるときにいくつかの利点が得られるが、本明細書に記載の主題の他の態様は、情報の送信のいかなる特定の態様にも限定されない。各計算装置410~440は、ネットワーク470を介して他の計算装置と通信することができる。場合により、ネットワーク470は、計算装置のサブセット相互間でのみ通信が可能になるように構成され得る。例えば、計算装置410は、ネットワーク470を経由して計算装置420および430と通信できるが、計算装置440とは通信できないことがある。さらに、図4は、ネットワーク470を介して接続された4つの計算装置だけを示しているが、ネットワーク化計算システムは、任意の数の計算装置およびネットワークを含むことができる。
【0047】
図5は、計算装置410~440内のHWアクセラレータによってそれぞれ提供されるアクセラレーションサービスのアクセラレーションサービスリスティング例510~540を示す。計算装置110のアクセラレータによって提供されるアクセラレーションサービスを識別する図3のリスティング328a~328cのように、アクセラレーションサービスリスティング510~540は、計算装置410~440内のHWアクセラレータカード418~448のアクセラレータによってそれぞれ提供される能力および機能性を含む。計算装置の通信インタフェースに装着されたHWアクセラレータカードのアクセラレータによって提供される各アクセラレーションサービスは、「(ローカル)」ラベルで識別される。例えば、計算装置410内のHWアクセラレータカード418は、ネットワーキングおよび圧縮のアクセラレーションサービスを提供することができる。同様に、計算装置420内のHWアクセラレータカード428は、ネットワーキングおよび符号化のアクセラレーションサービスを提供することができ、計算装置430内のHWアクセラレータカード438は、ネットワーキングおよびハッシングのアクセラレーションサービスを提供することができ、計算装置440内のHWアクセラレータカード448は、ネットワーキングおよび暗号化のサービスを提供することができる。
【0048】
リスティング510~540は、サービスアグリゲーションを介して識別されたネットワーク470上の他の計算装置のアクセラレーションサービスも含む。これらの遠隔で利用可能なアクセラレーションサービスは、図5において「(リモート)」ラベルで識別される。例えば、リスティング510は、計算装置320内のHWアクセラレータカードによって提供された符号化、計算装置330内のHWアクセラレータカードによって提供されたハッシング、および計算装置340内のHWアクセラレータカードによって提供された暗号化を、計算装置310が利用できる集められたアクセラレーションサービスとして識別する。図5は、各計算装置を、接続されたすべての計算装置によって提供されるすべてのアクセラレーションサービスを使用できるものとして示しているが、場合により、遠隔装置によって提供されるアクセラレーションサービスは遠隔アクセスからブロックされてもよい。例えば、計算装置340は、ローカル暗号化アクセラレーションサービスがサービスアグリゲーションによって利用可能にされるのを妨げることができる。
【0049】
各計算装置のアクセラレーションサービスリスティングは、1つまたは複数のHWアクセラレータカード上で走るASMソフトウェアによって生成され得る。例えば、計算装置410のHWアクセラレータカード418などのHWアクセラレータカードの初期化中に、HWアクセラレータカードの計算コンプレックスはASMを実行することができる。ASMは、ローカルアクセラレーションサービスおよびリモートアクセラレーションサービスを含む、HWアクセラレータカードを通して供給され得るアクセラレーションサービスのリスティングを準備することができる。このアクセラレーションサービスリスティングは、計算装置410上で実行するオペレーティングシステムによって、またはHWアクセラレータカード418、コンピュータ装置410、もしくは他の場所上のメモリに保存されたコンフィギュレーションファイルから提供され得る。
【0050】
場合により、アクセラレーションサービスリスティングは動的に発見され得る。例えば、HWアクセラレータカード418上で実行するASMは、計算装置410にローカルで装着されたHWアクセラレータカードおよび/またはネットワーク470に接続された計算装置の他のHWアクセラレータカードと通信することができる。通信中、HWアクセラレータカード418は、他のローカルまたはリモートで接続されたHWアクセラレータによって提供されるアクセラレーションサービスのリスティングを要求することができる。HWアクセラレータカード418は、これらその他のアクセラレーションサービスを集めてアクセラレーションリスティング510にすることができる。場合により、HWアクセラレータカードは、それぞれの他のローカルまたはリモートで接続されたHWアクセラレータカードのための別々のアクセラレーションリスティングを維持することができる。例えば、図5は、計算装置410用の単一のリスティング510だけを示しているが、計算装置410は、HWアクセラレータカード418によって提供されるアクセラレーションサービス用のリスティングと、他のリモートで接続されたHWアクセラレータカードによって提供されるアクセラレーションサービス用の別個のリスティングとを有することができる。前述の例は、HWアクセラレータカード418上で実行するASMプログラムによってアクセラレーションサービスを発見し、集めることを説明しているが、他のHWアクセラレータカード、例えばアクセラレータカード428、438、および/または448は、これらのアクセラレータカードのそれぞれの計算装置420~440が利用できるアクセラレーションサービスのリスティングを準備することもできる。
【0051】
HWアクセラレータカード418上で実行するASMは、アクセラレーションサービスリスティングを管理することができる。これに関して、ASMは、どのアクセラレーションサービスが健全である(例えば、動作可能である、ワークロードを処理するために利用可能である、ワークロードのための十分な処理能力を有する、など)かを決定することができる。ASMは、アクセラレーションサービスの状態(例えば、健全、不健全/ビジー、利用不可など)を決定するために、アクセラレーションサービスリスティング内のアクセラレーションサービスの動作を監視することができる。例えば、ASMは、他のHWアクセラレータカードによって提供されたアクセラレーションサービスの状態を決定するために、それらの他のASMにステータスアップデートを要求することができる。ASMは、他のASMによって利用不可(例えば、到達不可能)と識別されたアクセラレーションサービスを除去するために、アクセラレーションサービスリスティングを取り除くことができる。別の例では、ASMは、不健全である(例えば、動作が非効率である/遅い)またはビジーである(例えば、他のワークロードを処理している、他のワークロードのために予約されている、など)と識別されたアクセラレーションサービスをマーキングして、ASMがワークロードをこれらのビジー/不健全なアクセラレーションサービスに送信しないようにすることができる。
【0052】
別の例では、ASMは、完了のために送信されるワークロードまたは応答インジケータを監視することができる。応答が受信されないか、またはワークロード完了がASMによって識別されない場合、ASMは、ワークロードがリモートHWアクセラレータによって受信されなかった、かつ/またはリモートHWアクセラレータによって提供された所期のアクセラレーションサービスによって処理されなかったと決定することができる。このような場合、ASMは、別のアクセラレーションサービスにワークロードを実行するよう要求することができる。
【0053】
場合により、ASMは、ロードバランシング、障害処理、パフォーマンスまたは他のそのような検討事項のために、ワークロードを複数のアクセラレーションサービスに分配することができる。例えば、ワークロードは大きくてもよく、ASMは、ワークロードを効率的に処理するために多くのHWアクセラレータカードのアクセラレーションサービスを活用することができる。別の例では、ASMは、いくつかのリモートHWアクセラレータカードに優先順位をつけることができる。例えば、ASMは、第1のリモートHWアクセラレータによって処理されるべきワークロードを指示することができる。第1のリモートHWアクセラレータがワークロードを処理することができない場合、第2のリモートHWアクセラレータがそのワークロードを処理することができる。このプロセスは、追加のフォールバックHWアクセラレータがワークロードを処理するよう指示されている状態で、ワークロードが処理されるまで繰り返すことができる。
【0054】
HWアクセラレータカードの初期化の一部として、計算コンプレックス上で実行するASMは、サービスの呼び出しをローカルとリモートの両方で送受信するためのサービスを準備することができる。これに関して、ASMは、エンドサービスコードがローカルサービスコール(例えば、ASMがその上で実行しているHWアクセラレータカードのアクセラレータにより処理するためのコール)を処理するためにイネーブルになることを初期化および/または確認することができる。
【0055】
ASMは、リモートサービス用のそのプロキシコードがイネーブルになることを初期化および/または確認することもできる。プロキシコードは、リモートサービスを呼び掛けるための媒介(例えば、別のHWアクセラレータカードのアクセラレータにより処理するためにASMから別のASMへ送信されるコール)がイネーブルになるときに使用され得る。これに関して、プロキシコードは、ASMからASMへの通信をイネーブルにするコードを指す。プロキシコードは、そのために走っているASMがない可能性がある他のリモートHWアクセラレータカード上のアクセラレータからアクセラレーションサービスを呼び出すために、ローカルHWアクセラレータカードのASMをイネーブルにするコードを指すこともある。すなわち、ローカルHWアクセラレータカードの、プロキシコードによるASMは、リモートHWアクセラレータカードがASMを含んでいないときに、アクセラレーションサービスに対する要求の、ローカル計算装置からリモートHWアクセラレータカードへの経路を定めるように構成され得る。
【0056】
ASMは、アクセラレーションサービスリスティングを計算装置のプロセッサに公表することができる。例えば、HWアクセラレータカード418上で実行するASMは、リスティング510を計算装置410の1つまたは複数のプロセッサに提供することができる。場合により、計算装置上で実行するオペレーティングシステムが、ASMにリスティングを要求することができる。例えば、計算装置410上で実行するオペレーティングシステムが、HWアクセラレータカード418にアクセラレーションサービスのリスティング510を要求することができる。
【0057】
方法の例
図6は、PCIeバス260などの通信インタフェースを介してプロセッサ112などのプロセッサに接続されたHWアクセラレータカード118などのHWアクセラレータカードによって提供されるアクセラレーションサービスを発見するプロセスを示す流れ図である。プロセッサ112は、PCIeインタフェースを介してHWアクセラレータカード118(破線で示す)と通信するよう要求することができる。計算装置上で実行するオペレーティングシステムは、HWアクセラレータカードとプロセッサ112との間のPCIeバスを経由して通信チャネルを提供することができる。
【0058】
通信チャネルを使用すると、プロセッサ112は、ライン623で示すように、HWアクセラレータカード118上のアクセラレータによって提供されるアクセラレーションサービスのリスティングに対する要求を送信することができる。プロセッサ118から要求を受信したことに応答して、HWアクセラレータカード118の計算コンプレックス212は、矢印625および627によってそれぞれ示されているように、HWアクセラレータカードのメモリ214(またはアクセラレータのメモリ)からアクセラレーションサービスのリスティングに照会し、これを受信することができる。これに関して、HWアクセラレータカードは、すべてのアクセラレータのアクセラレーションサービスを集めることができる。場合によっては、HWアクセラレータカード118は、いくつかのアクセラレータにのみ照会することができる。
【0059】
場合により、HWアクセラレータカード118は、アクセラレータのアクセラレーションサービスを階層的な態様で集めることができる。これに関して、アクセラレーションサービスは、1つのアクセラレーションサービスが別のアクセラレーションサービスに頼るかまたは依存することができるという点で階層的であり得る。アクセラレーションサービス相互間のこの階層的関係は、このリスティングにおいて識別され、保存され得る。場合により、階層的関係における各レベルは、下のレベルの能力および機能性を識別することができる。
【0060】
計算コンプレックス212は、アクセラレーションサービスのリスティングを、ライン629で示すようにPCIeバス260を介してプロセッサ112に提供することができる。プロセッサがアクセラレーションサービスのリスティングを受信すると、通信チャネルは閉じることができる。
【0061】
プロセッサが1つまたは複数のアクセラレーションサービスを活用することができる場合には、プロセッサ112は、HWアクセラレータカードに、HWアクセラレータカード118上のアクセラレータによって提供される提供済みアクセラレーションサービスのうちの1つを使用して1つまたは複数のタスクを完了するよう要求することができる。図7は、プロセッサ112がPCIeバス260を介して接続されたHWアクセラレータカード118のアクセラレーションサービスに関する情報を要求するのを示している。これに関して、ステップ723~729は、上述したステップ623~629に対応する。
【0062】
矢印729によって示されているように、HWアクセラレータは、HWアクセラレータが圧縮サービスを提供できることを示している。アクセラレーションサービスを受信すると、プロセッサ112は、矢印731で示されているように、データを圧縮するために、データおよび命令を保存する場所の指示を含むワークロード命令をHWアクセラレータカード118に提供することができる。次いで、HWアクセラレータカードの計算コンプレックス212は、矢印733によって示されているように、命令を確認することができ、プロセッサ112が通信することができるIDを提供して、HWアクセラレータカード118による圧縮についての状態更新情報を得る。次いで、プロセッサ112は、矢印735および737によってそれぞれ示されているように、圧縮の状態を要求し、受信することができる。圧縮が完了したことをポーリング要求が示すと、プロセッサ112とHWアクセラレータカード118との間の通信が終わることができる、または、さらなるタスクがプロセッサ112からHWアクセラレータカードへ送信され得る。図7は圧縮サービスを示しているが、HWアクセラレータによって行われる処理は、任意の種類の動作または動作の組合せとすることができる。
【0063】
図8は、サービスアグリゲーション動作の流れ図を示す。計算装置のプロセッサ812上で走るソフトウェアが、ワークロードを処理するためにHWアクセラレーションカード818に1つまたは複数のアクセラレーションサービスを要求することができる。ライン823で示されている要求は、プロセッサ812により、PCEインタフェース860などの通信インタフェースによって確立された通信リンクを経由してローカルHWアクセラレータカード818に送信され得る。説明のために、アクセラレーションサービスがプロセッサ812によって要求されることは、ワークロードを処理するための「圧縮」サービスである。しかしながら、任意の他のアクセラレーションサービスが要求されてもよい。
【0064】
要求823を送る前に、プロセッサ812上で実行するソフトウェアには、HWアクセラレータカード818からローカルで(すなわち、HWアクセラレータカード818のアクセラレータにより)またはリモートで(すなわち、ネットワークを介して接続されたHWアクセラレータの他のリモートアクセラレータにより)利用可能なアクセラレーションサービスのリスティングを設けることができる。例えば、このリスティングは、HWアクセラレータカード818の初期化中に設けることができる。別の例では、計算装置上で実行する、オペレーティングシステムなどのソフトウェアまたは別のプログラムがリスティングを要求することができる。さらに別の例では、アクセラレーションサービスのリスティングは、HWアクセラレータカード118との通信なしにコンフィギュレーションシステムからソフトウェアによって受信され得る。コンフィギュレーションシステムは、集中型リスティングであり得、計算装置上で実行するソフトウェアは、そこからリスティングを取得することができる。例えば、コンフィギュレーションシステムは、ネットワークまたは他の接続を介してアクセス可能な記憶装置と共に、遠隔に配置され得る。
【0065】
要求823は、要求されているアクセラレーションサービスの名称(例えば、一意の識別子)、インラインパラメータ、および要求されたアクセラレーションサービス(複数可)のための入力(例えば、ワークロードを処理するためのデータ)が見られるピン留めされたメモリ場所(複数可)を含むことができる。
【0066】
リクエストを受信した後、HWアクセラレータカード818のASMは、ライン825で示されているように、要求されたアクセラレーションサービスがローカルであるかどうかを決定することができる。アクセラレーションサービスがローカルである場合には、ASMは、インラインパラメータを使用して要求にサービスを提供し、DMA(直接メモリアクセス)を使用して渡されたメモリアドレスにアクセスすることができる。次いで、要求されたアクセラレーションサービスを実行することができるローカルアクセラレータは、入力(例えばデータ)を処理することができる。再び図8を参照すると、要求された圧縮アクセラレーションサービスは、HWアクセラレータカード818のアクセラレータによって行われ得る。次いで、完了した圧縮要求の結果(例えば出力)は、ライン827で示されているように、HWアクセラレータカード818からプロセッサ812に渡され得る。
【0067】
要求されたアクセラレーションサービスがローカルで利用できない場合には、ASMは、リモートサービスHWアクセラレータカードへの要求元のクライアントとして働くことができる。これに関して、HWアクセラレータカードのASMは、要求を、要求されたアクセラレーションサービスを提供するリモートHWアクセラレータカードに渡すことができる。HWアクセラレータカードは、ピン留めされたメモリを、リモート直接メモリアクセス(RDMA)を経由してリモートHWアクセラレータカードに渡すこともできる。
【0068】
図8は、リモートサービスアグリゲーション動作の流れをさらに示す。例えば、プロセッサ812は、ライン829で示されているように、リモートHWアクセラレータカード838によって提供された暗号化アクセラレーションサービスをローカルHWアクセラレータカード818に要求することができる。要求を受信した後、ローカルHWアクセラレータカード818は、ライン831で示されているように、暗号化が、このカードが提供するアクセラレーションサービスではないと決定することができる。
【0069】
ローカルHWアクセラレータカードがアクセラレーションサービスを完了することができないとき、ローカルHWアクセラレータカード818のASMは、どのリモートHWアクセラレータカードがサービスを提供することができ得るかを決定することができる。図8を参照すると、ローカルHWアクセラレータ818のASMは、リモートHWアクセラレータカード838が暗号化アクセラレーションサービスを提供することができると決定することができる。ASMは、ライン833で示されているように、要求を転送することができる。
【0070】
場合により、要求は、アクセラレーションサービスを提供することができるHWアクセラレータカードの識別子を含むことができる。そのような場合、ローカルHWアクセラレータカード818は、このカードが要求されたアクセラレーションサービスを行うかどうかを決定することをスキップし、要求を識別されたリモートHWアクセラレータカードに転送するのを続行することができる。
【0071】
次いで、リモートHWアクセラレータカード838は、図8にライン835で示されている、暗号化のアクセラレーションサービスを行うことができる。次いで、完了した暗号化の結果(例えば出力)は、ライン837で示されているように、リモートHWアクセラレータカード838からローカルHWアクセラレータカード818に渡され、ライン839で示されているように、ローカルHWアクセラレータカード818からプロセッサ812に渡され得る。
【0072】
HWアクセラレータカード相互間の通信は、各HWアクセラレータカード上で実行するASMプログラムによって行うことができる。これに関して、各ASMは直接通信することができる。あるいは、ASMは、通信データ(例えば、要求、出力など)を、パケットのリモートルータブル宛先までの経路を定めることができる外ヘッダ内のデータパケットにカプセル化することができ、リモートルータブル宛先のアドレスは、レギュラルーティングを介して発見することができる。パケットが所期のASMに到達すると、ASMは、パケットのカプセル開放を行い、パケットを、パケットヘッダ内に識別された通り、そのHWアクセラレータカード上の正しいアクセラレータへ誘導することができる。
【0073】
特に明記しない限り、前述の代替例は、相互に排他的ではなく、むしろ独自の利点を達成するために様々な組合せで実施され得る。上述の特徴のこれらおよびその他の変形形態および組合せは、特許請求の範囲によって定義された主題から逸脱することなく利用され得るので、実施形態の前述の説明は、特許請求の範囲によって定義された主題の限定としてではなく、例証として受け取られるべきである。加えて、本明細書に記載の例を提供すること、ならびに「~など(such as)」、「~を含む(including)」などと表現される節は、特許請求の範囲の主題を特定の例に限定するものと解釈されるべきではなく、むしろ、例は、多くの考えられる実施形態のうちの1つだけを説明するためのものである。さらに、異なる図面内の同じ参照番号は、同じまたは類似の要素を明確にすることができる。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2023-11-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサにより、通信インタフェースを介して、前記ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを提供するステップであって、アクセラレーションサービスの前記リスティングが、前記ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、ステップと、
前記1つまたは複数のプロセッサにより、計算装置のプロセッサからワークロード命令を受信するステップであって、前記ワークロード命令が、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、ステップと、
前記1つまたは複数のプロセッサにより、前記ワークロード命令を前記リモートHWアクセラレータカードに転送するステップと
を含む、方法。
【請求項2】
前記1つまたは複数のプロセッサにより、前記リモートHWアクセラレータカードから処理済みワークロードを受信するステップであって、前記処理済みワークロードが、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つにより処理した後の前記ワークロードである、ステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のプロセッサにより、前記処理済みワークロードを前記計算装置の前記プロセッサに転送するステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
アクセラレーションサービスの前記リスティングが、前記1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記1つまたは複数のプロセッサ上で実行する前記ASMが、前記リモートHWアクセラレータカード上で実行する別のASMと通信する、請求項4に記載の方法。
【請求項6】
前記通信が、前記ASMが前記ワークロード命令を前記別のASMに転送することを含む、請求項5に記載の方法。
【請求項7】
前記通信が、前記ASMが前記別のASMに前記第2組のアクセラレーションサービスのリスティングを要求することを含む、請求項5に記載の方法。
【請求項8】
前記ASMが、アクセラレーションサービスの前記リスティングから不健全なアクセラレーションサービスを識別し、取り除く、請求項5に記載の方法。
【請求項9】
前記不健全なアクセラレーションサービスを識別することが、前記ASMにより、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つによる前記ワークロード命令の処理の失敗を決定することを含む、請求項8に記載の方法。
【請求項10】
前記不健全なアクセラレーションサービスを取り除くことが、
前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つを不健全としてマーキングすること、または
前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つをアクセラレーションサービスの前記リスティングから除去することを含む、請求項9に記載の方法。
【請求項11】
前記ワークロード命令の処理の前記失敗を決定した後で、前記ASMにより、更新済みワークロード命令を、前記異なるHWアクセラレータの前記アクセラレーションサービスのうちの少なくとも1つにより処理するための異なるHWアクセラレータカードに送信するステップ
をさらに含む、請求項10に記載の方法。
【請求項12】
前記ワークロード命令が、少なくとも1つの他のリモートHWアクセラレータカードの少なくとも1つのアクセラレーションサービスにより処理することをさらに定義する、請求項1に記載の方法。
【請求項13】
通信インタフェースと、
1つまたは複数のプロセッサと1つまたは複数のアクセラレータとを含むローカルハードウェア(HW)アクセラレータカードであって、前記1つまたは複数のプロセッサが、
前記通信インタフェースを介して、前記ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを受信することであって、アクセラレーションサービスの前記リスティングが、前記ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、受信することと、
計算装置のプロセッサからワークロード命令を受信することであって、前記ワークロード命令が、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、受信することと
前記ワークロード命令を前記リモートHWアクセラレータカードに転送することとを行うように構成される、ローカルハードウェア(HW)アクセラレータカードと
を備えるシステム。
【請求項14】
前記1つまたは複数のプロセッサが、
前記リモートHWアクセラレータカードから処理済みワークロードを受信することであって、前記処理済みワークロードが、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つにより処理した後の前記ワークロードである、受信すること
を行うようにさらに構成される、請求項13に記載のシステム。
【請求項15】
前記1つまたは複数のプロセッサが、前記処理済みワークロードを前記計算装置の前記プロセッサに転送すること
を行うようにさらに構成される、請求項14に記載のシステム。
【請求項16】
アクセラレーションサービスの前記リスティングが、前記1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される、請求項13~15のいずれか1項に記載のシステム。
【請求項17】
前記1つまたは複数のプロセッサ上で実行する前記ASMが、前記リモートHWアクセラレータカード上で実行する別のASMと通信する、請求項16に記載のシステム。
【請求項18】
前記通信が、前記ASMが前記ワークロード命令を前記別のASMに転送することを含む、請求項17に記載のシステム。
【請求項19】
前記通信が、前記ASMが前記別のASMに前記第2組のアクセラレーションサービスのリスティングを要求することを含む、請求項17に記載のシステム。
【請求項20】
前記ASMが、アクセラレーションサービスの前記リスティングから不健全なアクセラレーションサービスを識別し、取り除く、請求項18に記載のシステム。
【請求項21】
ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサに、請求項1~12のいずれか1項に記載の方法を実行させる、プログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0017
【補正方法】変更
【補正の内容】
【0017】
場合により、方法は、ワークロード命令の処理の失敗を決定した後で、ASMにより、更新済みワークロード命令を、異なるHWアクセラレータのアクセラレーションサービスのうちの少なくとも1つによって処理するための異なるHWアクセラレータカードに送信することを含む
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
詳細な説明
本明細書に記載の技術は、ハードウェア(HW)アクセラレータカードのアクセラレータによって提供されるアクセラレーションサービスを集め、公表するサービスアグリゲーションのためのシステムおよび方法に関する。サービスアグリゲーションを用いて、計算装置に装着されたHWアクセラレータカードは、アクセラレーションサービスをローカルおよびリモートで接続されたHWアクセラレータカードから計算装置に供給および公表し得る。本明細書にさらに記述されるように、計算装置内のHWアクセラレータカードの計算コア上で実行するソフトウェアは、通信インタフェースを介して計算装置にローカルで接続された他のHWアクセラレータカードおよび/または計算装置にリモートでネットワーク接続される他のHWアクセラレータカードと通信するために、プレコンフィギュレーションファイルを発見または使用することができる。次いで、計算装置は、計算装置に装着されたHWアクセラレータカードを通じて他のHWアクセラレータカードと通信することができる。したがって、計算装置は、任意の数のローカルまたはリモートで接続されたHWアクセラレータカードのアクセラレーションサービスをうまく利用することができる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
アクセラレーションサービスを発見することの不足を克服するために、本明細書に記載の技術は、HWアクセラレータカード上のアクセラレータによって提供され得るアクセラレーションサービスに対応する識別子の標準化リスティングを使用する。これに関して、各HWアクセラレータカードは、カード上のアクセラレータによって提供されるアクセラレーションサービスに対応する識別子のリスティングを保存することができる。識別子は現在使用されている装置のクラスおよびサブクラスよりも細かい粒度を提供することができるので、HWアクセラレータカードからリスティングを取得するプロセッサは、HWアクセラレータカード上のアクセラレータによって提供されるより多くのアクセラレーションサービスを決定し、活用することができるようになる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0031
【補正方法】変更
【補正の内容】
【0031】
図1は、プロセッサ112、メモリ114、HWアクセラレータカード118、およびネットワークインタフェース119を同じブロック内にあるものとして機能的に説明しているが、プロセッサ112、メモリ114、HWアクセラレータカード118、およびネットワークインタフェース119は、同じ物理的ハウジング内に保管されてもよいし、そうでなくてもよい。例えば、命令117およびデータ116の一部は、取外し可能なCD-ROM、および読出し専用DRAMチップ内のその他に保存され得る。命令およびデータの一部または全部が、プロセッサ112から物理的に遠く離れているが、依然としてプロセッサ112によりアクセス可能な場所に保存され得る。さらに、図1は、計算装置110を、ただ1つのプロセッサ112、メモリ114、ネットワークインタフェース119、およびHWアクセラレータカード118を含むものとして説明しているが、計算装置110は、任意の数のプロセッサ、メモリ、ネットワークインタフェース、およびHWアクセラレータカードを含むことができる。同様に、プロセッサ112は、実際にはプロセッサの集合体を含むことができ、これらのプロセッサは、並列に動作してもよく、そうでなくてもよい。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0035
【補正方法】変更
【補正の内容】
【0035】
再び図2を参照すると、HWアクセラレータカードはメモリ214を含む。メモリ214は、メモリ214が、プロセッサ112によりアクセス可能な情報を保存することができる任意の種類の非一時的コンピュータ可読媒体、例えば、ハードドライブ、ソリッドステートドライブ、テープドライブ、光学式記憶装置、メモリカード、ROM、RAM、DVD、CD-ROM、書込み可能メモリ、読出し専用メモリなどであり得るという点で、メモリ114と比較することができる。メモリ214は、計算コンプレックス212および/またはアクセラレータ228a~228cの計算ユニット213によって実行され得る命令217を含む、計算コンプレックス212および/またはアクセラレータ228a~228cによりアクセス可能な情報を保存することができる。図示されていないが、各アクセラレータ228~228cは、それ自体のメモリ、ならびに/あるいは計算コンプレックス212によって割り当てられたタスクを実行するためのデータおよび命令を保存するための共有メモリのプールを有することができる。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正の内容】
【0039】
図3にさらに示すように、共通のアクセラレーションサービスを提供するアクセラレータは、アクセラレータのそれぞれのリスティング内の同じ一意の識別子に関連することができる。例えば、機能1は、アクセラレータ228aおよび228bが実行することができる特定の機能に関連する一意の識別子である。したがって、リスティング328aおよび328bは、同じ一意の識別子の機能1を含む。同様に、能力9は、アクセラレータ228bおよび228cの特定の能力に関連する一意の識別子である。したがって、リスティング328bおよび32cは、能力9の同じ一意の識別子を含む。図3における一意の識別子は、可能な識別子の例にすぎない。識別子は、数字、文字、シンボルなどを含む任意の値または他のそのようなインジケータを含むことができる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正の内容】
【0040】
リスティング328a~328cは、HWアクセラレータカード118のアクセラレータに関連する一意の識別子のリストを作るための可能な形式の例である。いくつかの例では、アクセラレータのリスティングは、スプレッドシートまたはデータベースなどの複合リスティングに保存され得る。例えば、複合リスティングは、各アクセラレータとそのアクセラレータによって提供されるアクセラレーションサービスに関連する一意の識別子とを識別することができる。同様に、リスティングは、アクセラレータに従って分類され得る。例えば、第1のリスティングは、第1組のアクセラレータ用の複合リスティングを含むことができ、第2のリスティングは、第2組のアクセラレータ用の複合リスティングを含むことができる。他のデータがリスティングに含められてもよい。図2および図3は、リスティングをメモリ21に保存されるものとして示しているが、リスティングは、1つまたは複数のアクセラレータのメモリに保存されてもよい。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0045
【補正方法】変更
【補正の内容】
【0045】
図4は、ネットワーク70を介して互いに接続された計算装置410、420、430、440を含むネットワーク化計算システム400を示す。計算装置10~40はそれぞれ、計算装置110と比較され得る。明瞭にするために、図4は、計算装置410~440を、それぞれHWアクセラレータカード418、428、438、448およびネットワークインタフェースカード419、429、439、449を含むものとして示す。しかしながら、各計算装置410~440は、計算装置110と同じまたは異なるコンポーネント、例えば、1つまたは複数のプロセッサ、メモリ、HWアクセラレータカード、および/またはネットワークインタフェースなど、ならびに、通常はコンピュータ内に見られるか、または他の方法でコンピュータに接続された他のコンポーネントを含むことができる。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0047
【補正方法】変更
【補正の内容】
【0047】
図5は、計算装置410~440内のHWアクセラレータカードによってそれぞれ提供されるアクセラレーションサービスのアクセラレーションサービスリスティング例510~540を示す。計算装置110のアクセラレータによって提供されるアクセラレーションサービスを識別する図3のリスティング328a~328cのように、アクセラレーションサービスリスティング510~540は、計算装置410~440内のHWアクセラレータカード418~448のアクセラレータによってそれぞれ提供される能力および機能性を含む。計算装置の通信インタフェースに装着されたHWアクセラレータカードのアクセラレータによって提供される各アクセラレーションサービスは、「(ローカル)」ラベルで識別される。例えば、計算装置410内のHWアクセラレータカード418は、ネットワーキングおよび圧縮のアクセラレーションサービスを提供することができる。同様に、計算装置420内のHWアクセラレータカード428は、ネットワーキングおよび符号化のアクセラレーションサービスを提供することができ、計算装置430内のHWアクセラレータカード438は、ネットワーキングおよびハッシングのアクセラレーションサービスを提供することができ、計算装置440内のHWアクセラレータカード448は、ネットワーキングおよび暗号化のサービスを提供することができる。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0048
【補正方法】変更
【補正の内容】
【0048】
リスティング510~540は、サービスアグリゲーションを介して識別されたネットワーク470上の他の計算装置のアクセラレーションサービスも含む。これらの遠隔で利用可能なアクセラレーションサービスは、図5において「(リモート)」ラベルで識別される。例えば、リスティング510は、計算装置20内のHWアクセラレータカードによって提供された符号化、計算装置30内のHWアクセラレータカードによって提供されたハッシング、および計算装置40内のHWアクセラレータカードによって提供された暗号化を、計算装置10が利用できる集められたアクセラレーションサービスとして識別する。図5は、各計算装置を、接続されたすべての計算装置によって提供されるすべてのアクセラレーションサービスを使用できるものとして示しているが、場合により、遠隔装置によって提供されるアクセラレーションサービスは遠隔アクセスからブロックされてもよい。例えば、計算装置340は、ローカル暗号化アクセラレーションサービスがサービスアグリゲーションによって利用可能にされるのを妨げることができる。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正の内容】
【0049】
各計算装置のアクセラレーションサービスリスティングは、1つまたは複数のHWアクセラレータカード上で走るASMソフトウェアによって生成され得る。例えば、計算装置410のHWアクセラレータカード418などのHWアクセラレータカードの初期化中に、HWアクセラレータカードの計算コンプレックスはASMを実行することができる。ASMは、ローカルアクセラレーションサービスおよびリモートアクセラレーションサービスを含む、HWアクセラレータカードを通して供給され得るアクセラレーションサービスのリスティングを準備することができる。このアクセラレーションサービスリスティングは、計算装置410上で実行するオペレーティングシステムによって、またはHWアクセラレータカード418、計算装置410、もしくは他の場所上のメモリに保存されたコンフィギュレーションファイルから提供され得る。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0063
【補正方法】変更
【補正の内容】
【0063】
図8は、サービスアグリゲーション動作の流れ図を示す。計算装置のプロセッサ812上で走るソフトウェアが、ワークロードを処理するためにHWアクセラレータカード818に1つまたは複数のアクセラレーションサービスを要求することができる。ライン823で示されている要求は、プロセッサ812により、PCEインタフェース860などの通信インタフェースによって確立された通信リンクを経由してローカルHWアクセラレータカード818に送信され得る。説明のために、アクセラレーションサービスがプロセッサ812によって要求されることは、ワークロードを処理するための「圧縮」サービスである。しかしながら、任意の他のアクセラレーションサービスが要求されてもよい。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0069
【補正方法】変更
【補正の内容】
【0069】
ローカルHWアクセラレータカードがアクセラレーションサービスを完了することができないとき、ローカルHWアクセラレータカード818のASMは、どのリモートHWアクセラレータカードがサービスを提供することができ得るかを決定することができる。図8を参照すると、ローカルHWアクセラレータカード818のASMは、リモートHWアクセラレータカード838が暗号化アクセラレーションサービスを提供することができると決定することができる。ASMは、ライン833で示されているように、要求を転送することができる。
【手続補正書】
【提出日】2024-01-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサにより、通信インタフェースを介して、前記ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを提供するステップであって、アクセラレーションサービスの前記リスティングが、前記ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、ステップと、
前記1つまたは複数のプロセッサにより、計算装置のプロセッサからワークロード命令を受信するステップであって、前記ワークロード命令が、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、ステップと、
前記1つまたは複数のプロセッサにより、前記ワークロード命令を前記リモートHWアクセラレータカードに転送するステップと
を含む、方法。
【請求項2】
前記1つまたは複数のプロセッサにより、前記リモートHWアクセラレータカードから処理済みワークロードを受信するステップであって、前記処理済みワークロードが、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つにより処理した後の前記ワークロードである、ステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のプロセッサにより、前記処理済みワークロードを前記計算装置の前記プロセッサに転送するステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
アクセラレーションサービスの前記リスティングが、前記1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される、請求項に記載の方法。
【請求項5】
前記1つまたは複数のプロセッサ上で実行する前記ASMが、前記リモートHWアクセラレータカード上で実行する別のASMと通信する、請求項4に記載の方法。
【請求項6】
前記通信が、前記ASMが前記ワークロード命令を前記別のASMに転送することを含む、請求項5に記載の方法。
【請求項7】
前記通信が、前記ASMが前記別のASMに前記第2組のアクセラレーションサービスのリスティングを要求することを含む、請求項5に記載の方法。
【請求項8】
前記ASMが、アクセラレーションサービスの前記リスティングから不健全なアクセラレーションサービスを識別し、取り除く、請求項5に記載の方法。
【請求項9】
前記不健全なアクセラレーションサービスを識別することが、前記ASMにより、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つによる前記ワークロード命令の処理の失敗を決定することを含む、請求項8に記載の方法。
【請求項10】
前記不健全なアクセラレーションサービスを取り除くことが、
前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つを不健全としてマーキングすること、または
前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つをアクセラレーションサービスの前記リスティングから除去することを含む、請求項9に記載の方法。
【請求項11】
前記ワークロード命令の処理の前記失敗を決定した後で、前記ASMにより、更新済みワークロード命令を、前記異なるHWアクセラレータの前記アクセラレーションサービスのうちの少なくとも1つにより処理するための異なるHWアクセラレータカードに送信するステップ
をさらに含む、請求項10に記載の方法。
【請求項12】
前記ワークロード命令が、少なくとも1つの他のリモートHWアクセラレータカードの少なくとも1つのアクセラレーションサービスにより処理することをさらに定義する、請求項1に記載の方法。
【請求項13】
通信インタフェースと、
1つまたは複数のプロセッサと1つまたは複数のアクセラレータとを含むローカルハードウェア(HW)アクセラレータカードであって、前記1つまたは複数のプロセッサが、
前記通信インタフェースを介して、前記ローカルHWアクセラレータカードからアクセラレーションサービスのリスティングを受信することであって、アクセラレーションサービスの前記リスティングが、前記ローカルHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第1組のアクセラレーションサービスとリモートHWアクセラレータカードの1つまたは複数のアクセラレータによって提供される第2組のアクセラレーションサービスとを含む、受信することと、
計算装置のプロセッサからワークロード命令を受信することであって、前記ワークロード命令が、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの少なくとも1つにより処理するためのワークロードを定義する、受信することと
前記ワークロード命令を前記リモートHWアクセラレータカードに転送することとを行うように構成される、ローカルハードウェア(HW)アクセラレータカードと
を備えるシステム。
【請求項14】
前記1つまたは複数のプロセッサが、
前記リモートHWアクセラレータカードから処理済みワークロードを受信することであって、前記処理済みワークロードが、前記第2組のアクセラレーションサービスの前記アクセラレーションサービスのうちの前記少なくとも1つにより処理した後の前記ワークロードである、受信すること
を行うようにさらに構成される、請求項13に記載のシステム。
【請求項15】
前記1つまたは複数のプロセッサが、前記処理済みワークロードを前記計算装置の前記プロセッサに転送すること
を行うようにさらに構成される、請求項14に記載のシステム。
【請求項16】
アクセラレーションサービスの前記リスティングが、前記1つまたは複数のプロセッサ上で実行するアクセラレーテッドサービスマネージャ(ASM)によって生成される、請求項13~15のいずれか1項に記載のシステム。
【請求項17】
前記1つまたは複数のプロセッサ上で実行する前記ASMが、前記リモートHWアクセラレータカード上で実行する別のASMと通信する、請求項16に記載のシステム。
【請求項18】
前記通信が、前記ASMが前記ワークロード命令を前記別のASMに転送することを含む、請求項17に記載のシステム。
【請求項19】
前記通信が、前記ASMが前記別のASMに前記第2組のアクセラレーションサービスのリスティングを要求することを含む、請求項17に記載のシステム。
【請求項20】
前記ASMが、アクセラレーションサービスの前記リスティングから不健全なアクセラレーションサービスを識別し、取り除く、請求項18に記載のシステム。
【請求項21】
ローカルハードウェア(HW)アクセラレータカードの1つまたは複数のプロセッサに、請求項1~12のいずれか1項に記載の方法を実行させる、プログラム。
【国際調査報告】