(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-13
(45)【発行日】2022-04-21
(54)【発明の名称】拡張カードを介してハードウェアアクセラレーションを実行するための装置、システム、および方法
(51)【国際特許分類】
G06F 1/18 20060101AFI20220414BHJP
H05K 7/12 20060101ALI20220414BHJP
H05K 7/14 20060101ALI20220414BHJP
G06F 3/00 20060101ALI20220414BHJP
H05K 1/11 20060101ALI20220414BHJP
H01R 12/72 20110101ALN20220414BHJP
【FI】
G06F1/18 E
H05K7/12 F
H05K7/14 A
G06F3/00 V
H05K1/11 D
H01R12/72
(21)【出願番号】P 2019570396
(86)(22)【出願日】2017-08-30
(86)【国際出願番号】 US2017049276
(87)【国際公開番号】W WO2018236408
(87)【国際公開日】2018-12-27
【審査請求日】2020-06-02
(32)【優先日】2017-06-23
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】メタ プラットフォームズ, インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(72)【発明者】
【氏名】ビジェイラオ, ナルシング クリシュナ
【審査官】松浦 かおり
(56)【参考文献】
【文献】米国特許出願公開第2011/0066832(US,A1)
【文献】米国特許出願公開第2015/0294434(US,A1)
【文献】米国特許出願公開第2010/0076915(US,A1)
【文献】米国特許出願公開第2012/0084665(US,A1)
【文献】DeLOCK,The M.2 interface,[online],2017年02月,https://www.delock.de/infothek/M.2/M.2_e.html,インターネット
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/16- 1/18
G06F 3/00
H01R 12/00-12/91
H01R 24/00-24/86
H05K 1/11
H05K 3/40
H05K 7/12- 7/14
(57)【特許請求の範囲】
【請求項1】
中央処理装置と、
少なくとも1つのメモリデバイスと、
少なくとも1つの拡張ソケットと、
少なくとも1つの拡張カードと、
を備えたシステムであって、前記少なくとも1つの拡張カードが、
プリント回路基板と、
前記プリント回路基板上に配置された少なくとも1つのハードウェアアクセラレータであって、
コンピューティングタスクを実行するように設計された特定用途向けハードウェア回路を備え、
前記特定用途向けハードウェア回路を介して前記コンピューティングタスクの一部を実行することによって、前記中央処理装置から前記コンピューティングタスクの少なくとも前記一部をオフロードする、ハードウェアアクセラレータと、
前記プリント回路基板上に配置され、前記拡張ソケットに挿入されるように寸法決めされたエッジコネクタであって、
前記拡張ソケットに接続されたコンピューティングバスを介して前記ハードウェアアクセラレータを前記中央処理装置に結合し、
前記コンピューティングバス用に定義されたピン配列仕様よりもコンパクトであり且つM.2ピン配列仕様に準拠するピン配列を備える、エッジコネクタと、
を備え、
前記拡張ソケットが、前記拡張カードのピン配列からのデータを前記コンピューティングバスによって受け入れられる形式へ
と変換する
ように設けられた中間回路を含むことにより、前記拡張カードは、前記ピン配列と前記ピン配列仕様との間の競合にもかかわらず前記コンピューティングバスと正常に結合するように構成され、
前記特定用途向けハードウェア回路が実行するように設計されている前記コンピューティングタスクは、新しいデータの少なくとも1つのラベルを推測するために、知られているデータでトレーニングされたモデルを適用する人工知能推論タスクを含む、システム。
【請求項2】
前記ハードウェアアクセラレータが、
フィールドプログラマブルゲートアレイ、または
特定用途向け集積回路
のうちの少なくとも1つを備える、請求項1に記載のシステム。
【請求項3】
前記拡張ソケットを介して受け取った電圧を安定化し、安定化された前記電圧を前記ハードウェアアクセラレータに供給する電圧レギュレータをさらに備える、請求項1または2に記載のシステム。
【請求項4】
前記拡張ソケットが、前記コンピューティングバス用に定義された前記ピン配列仕様に準拠するピン配列を備える中間拡張カードに配置される、請求項
1から3のいずれか一項に記載のシステム。
【請求項5】
複数のモジュール式コンピューティングデバイスを受け入れるように寸法決めされたシャーシをさらに備え、
前記拡張ソケットが、前記シャーシに挿入されたモジュール式コンピューティングデバイスに配置され、および/または
任意で、前記拡張ソケットが、前記シャーシに挿入されたモジュール式ストレージデバイスに配置される、請求項
1から4のいずれか一項に記載のシステム。
【請求項6】
前記特定用途向けハードウェア回路が実行するように設計されている前記コンピューティングタスクがビデオトランスコーディングタスクを含む、請求項
1から
5のいずれか一項に記載のシステム。
【請求項7】
ドメインコントローラサーバまたはエッジサーバのうちの少なくとも1つを備え、
任意で、
前記エッジサーバを備え、
前記特定用途向けハードウェア回路を介して前記コンピューティングタスクの前記一部を実行することによって、前記中央処理装置から前記コンピューティングタスクの前記一部をオフロードすると、前記エッジサーバが前記コンピューティングタスクを実行することが可能になる、請求項
1から
6のいずれか一項に記載のシステム。
【請求項8】
クライアントデバイスの対応するユーザに少なくとも1つのオンラインサービスを提供する法人ネットワーキング企業のバックエンドデータセンタを備え、
任意で、前記オンラインサービスが、
ソーシャルネットワーキングサービス、
仮想現実サービス、または
クラウドストレージサービス
のうちの少なくとも1つを含む、請求項
1から
7のいずれか一項に記載のシステム。
【請求項9】
コンピューティングデバイスの拡張ソケットに拡張カードを挿入することであって、前記拡張カードが、
プリント回路基板と、
コンピューティングタスクを実行するように設計された特定用途向けハードウェア回路を備える前記プリント回路基板上に配置された少なくとも1つのハードウェアアクセラレータと、
前記プリント回路基板上に配置され、前記コンピューティングデバイスの前記拡張ソケットに挿入されるように寸法決めされたエッジコネクタであって、
前記拡張ソケットに接続されたコンピューティングバスを介して前記ハードウェアアクセラレータを前記コンピューティングデバイスの中央処理装置に結合し、
前記コンピューティングバス用に定義されたピン配列仕様よりもコンパクトであり且つM.2ピン配列仕様に準拠するピン配列を備える、エッジコネクタと、
を備える、前記拡張カードを挿入することと、
前記特定用途向けハードウェア回路を介して前記コンピューティングタスクの一部を実行することによって、前記中央処理装置から前記コンピューティングタスクの少なくとも前記一部をオフロードすることと
を含む方法であって、
前記拡張ソケットが、前記拡張カードのピン配列からのデータを前記コンピューティングバスによって受け入れられる形式へ
と変換する
ように設けられた中間回路を含むことにより、前記拡張カードは、前記ピン配列と前記ピン配列仕様との間の競合にもかかわらず前記コンピューティングバスと正常に結合するように構成され、
前記特定用途向けハードウェア回路が実行するように設計されている前記コンピューティングタスクは、新しいデータの少なくとも1つのラベルを推測するために、知られているデータでトレーニングされたモデルを適用する人工知能推論タスクを含む、方法。
【請求項10】
追加の拡張カードを前記コンピューティングデバイスの追加の拡張ソケットに挿入することによって、前記コンピューティングデバイスのハードウェアアクセラレーション能力をスケーリングすることをさらに備え、前記追加の拡張カードが、
前記コンピューティングタスクを実行するように設計された追加の特定用途向けハードウェア回路を備える少なくとも1つの追加のハードウェアアクセラレータと、
前記コンピューティングバス用に定義された前記ピン配列仕様よりもコンパクトな追加のピン配列を備える追加のエッジコネクタと
を備える、請求項
9に記載の方法。
【請求項11】
前記拡張カードを前記拡張ソケットに挿入することが、前記コンピューティングデバイスの前記拡張ソケットに挿入される中間拡張カードのソケットに前記拡張カードを挿入することを備え、前記中間拡張カードが、前記コンピューティングバス用に定義された前記ピン配列仕様に準拠するピン配列を備える、請求項
9または
10に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
複雑な計算タスク(とりわけ、ビデオトランスコーディングおよび人工知能動作)の対処に対する需要は、ますます勢いを増しながら増加している。複雑な計算タスクは、他のデバイス(たとえば、エッジサーバ)がこれらの要求の厳しいタスクを効果的に完了するために必要なコンピューティングリソースを欠いている場合があるため、多くの場合、強力なデータセンタサーバ(たとえば、ドメインコントローラ)に割り当てられる。しかしながら、ドメインコントローラの展開と維持には費用がかかる場合があり、また高需要のコンピューティングタスク用にデータセンタをスケーリングするためにドメインコントローラを追加することは、特に、従来エッジサーバによってサービスされていた高成長の接続拠点(points-of-presence、POP)において、非効率的および/または非実用的であり得る。さらに、ドメインコントローラは汎用設計のため、非常に具体的で要求の厳しいいくつかのタスクに苦労する、および/または非効率的に対処する場合がある。したがって、従来のデータセンタのリソースとスケーリング技法では、計算量の多いタスクに対する増え続ける需要に効率的かつ効果的に対応できない場合がある。
【発明の概要】
【0002】
以下でより詳細に記述されるように、本開示は、コンパクトな拡張カードを使用してハードウェアを加速することによって、ハードウェアによる複雑な計算タスクを効果的かつ効率的に対処するための様々な装置、システム、および方法を提示する。一例では、そのような拡張カードは、プリント回路基板とハードウェアアクセラレータを含み得る。ハードウェアアクセラレータは、プリント回路基板上に配置されてよく、コンピューティングタスクを実行するように設計された特定用途向けハードウェア回路を含み得る。ハードウェアアクセラレータは、特定用途向けハードウェア回路を介してコンピューティングタスクの少なくとも一部を実行することによって、コンピューティングデバイスの中央処理装置からコンピューティングタスクの少なくとも一部をオフロードし得る。拡張カードはまた、プリント回路基板上に配置され、コンピューティングデバイスの拡張ソケットに挿入されるように寸法決めされたエッジコネクタを含み得る。エッジコネクタは、拡張ソケットに接続されたコンピューティングバスを介してハードウェアアクセラレータを中央処理装置に結合し得る。エッジコネクタはまた、コンピューティングバス用に定義されたピン配列仕様よりもコンパクトなピン配列を含み得る。
【0003】
いくつかの例では、エッジコネクタのピン配列は、M.2ピン配列仕様、U.2ピン配列仕様、および/またはmSATAピン配列仕様に準拠し得る。追加の、または代替の例では、ハードウェアアクセラレータは、フィールドプログラマブルゲートアレイおよび/または特定用途向け集積回路を含み得る。
【0004】
いくつかの実施形態では、拡張カードは、拡張ソケットを介して受け取った電圧を安定化し、安定化された電圧をハードウェアアクセラレータに供給する電圧レギュレータをさらに含み得る。一例では、特定用途向けハードウェア回路が実行するように設計されているコンピューティングタスクは、新しいデータの少なくとも1つのラベルを推測するために、知られているデータでトレーニングされたモデルを適用する人工知能推論タスクを含み得る。追加の、または代替の例では、特定用途向けハードウェア回路が実行するように設計されているコンピューティングタスクは、ビデオトランスコーディングタスクを含み得る。
【0005】
同様に、上述の装置を組み込んだシステムは、中央処理装置、メモリデバイス、拡張ソケット、および拡張カードを含み得る。拡張カードは、プリント回路基板と、プリント回路基板上に配置されたハードウェアアクセラレータとを含み得る。一例では、ハードウェアアクセラレータは、コンピューティングタスクを実行するように設計された特定用途向けハードウェア回路を含み得る。この例では、ハードウェアアクセラレータは、特定用途向けハードウェア回路を介してコンピューティングタスクの少なくとも一部を実行することによって、中央処理装置からコンピューティングタスクの少なくとも一部をオフロードし得る。拡張カードはまた、プリント回路基板上に配置され、拡張ソケットに挿入されるように寸法決めされたエッジコネクタを含み得る。エッジコネクタは、拡張ソケットに接続されたコンピューティングバスを介してハードウェアアクセラレータを中央処理装置に結合し得る。エッジコネクタはまた、コンピューティングバス用に定義されたピン配列仕様よりもコンパクトなピン配列を含み得る。
【0006】
いくつかの例では、拡張ソケットは、コンピューティングバス用に定義されたピン配列仕様に準拠するピン配列を含む中間拡張カードに配置され得る。さらなる例では、本システムは、複数のモジュール式コンピューティングデバイスを受け入れるように寸法決めされたシャーシを含み得る。これらの例では、拡張ソケットは、シャーシに挿入されたモジュール式コンピューティングデバイスに配置され得る。追加的または代替的に、本システムは、複数のモジュール式ストレージデバイスを受け入れるように寸法決めされたシャーシを含み得る。これらの例では、拡張ソケットは、シャーシに挿入されたモジュール式ストレージデバイスに配置され得る。
【0007】
いくつかの実施形態では、本システムは、ドメインコントローラサーバおよび/またはエッジサーバを表し得る。システムがエッジサーバを表す実施形態では、コンピューティングタスクのうちの少なくとも一部をエッジサーバの中央処理装置からオフロードすることにより、エッジサーバがコンピューティングタスクを実行することを可能にし得る。
【0008】
いくつかの例では、本システムは、クライアントデバイスの対応するユーザに少なくとも1つのオンラインサービスを提供する法人ネットワーキング企業のバックエンドデータセンタを表し得る。オンラインサービスは、たとえば、ソーシャルネットワーキングサービス、仮想現実サービス、および/またはクラウドストレージサービスを表し得る。
【0009】
対応する方法は、コンピューティングデバイスの拡張ソケットに拡張カードを挿入することを含み得る。拡張カードは、プリント回路基板と、プリント回路基板上に配置されたハードウェアアクセラレータとを備え得る。ハードウェアアクセラレータは、コンピューティングタスクを実行するように設計された特定用途向けハードウェア回路を含み得る。拡張カードはまた、プリント回路基板上に配置され、コンピューティングデバイスの拡張ソケットに挿入されるように寸法決めされたエッジコネクタを含み得る。エッジコネクタは、拡張ソケットに接続されたコンピューティングバスを介してハードウェアアクセラレータをコンピューティングデバイスの中央処理装置に結合し得る。エッジコネクタはまた、コンピューティングバス用に定義されたピン配列仕様よりもコンパクトなピン配列を含み得る。さらに、本方法は、特定用途向けハードウェア回路を介してコンピューティングタスクの少なくとも一部を実行することによって、中央処理装置からコンピューティングタスクの少なくとも一部をオフロードすることを含み得る。
【0010】
いくつかの例では、本方法は、追加の拡張カードをコンピューティングデバイスの追加の拡張ソケットに挿入することによって、コンピューティングデバイスのハードウェアアクセラレーション能力をスケーリングすることをさらに含み得る。追加の拡張カードは、コンピューティングタスクを実行するように設計された追加の特定用途向けハードウェア回路を含む、少なくとも1つの追加のハードウェアアクセラレータを含み得る。追加の拡張カードはまた、コンピューティングバス用に定義されたピン配列仕様よりもコンパクトな追加のピン配列を含む追加のエッジコネクタを含み得る。追加の例では、拡張カードを拡張ソケットに挿入することは、コンピューティングデバイスの拡張ソケットに挿入される中間拡張カードのソケットに拡張カードを挿入することを含み得る。これらの例では、中間拡張カードは、コンピューティングバス用に定義されたピン配列仕様に準拠するピン配列を含み得る。
【0011】
上記で言及された実施形態のいずれかからの特徴は、本明細書で記述される一般原理に従って互いに組み合わせて使用され得る。これらおよび他の実施形態、特徴、および利点は、添付の図面および特許請求の範囲と併せて以下の詳細な記述を読むことでより完全に理解されるであろう。
【0012】
本明細書に開示され、添付の特許請求の範囲に示される実施形態は、拡張カード、システム、および方法を対象とし、1つの請求カテゴリにおいて言及されている任意の特徴、たとえば方法は、別の請求カテゴリ、たとえば、システム、ストレージ媒体、およびコンピュータプログラム製品においても同様に請求することができる。添付の特許請求の範囲における依存関係または参照は、正式な理由のみで選択されている。しかしながら、任意の前の請求(具体的には、複数の依存関係)への意図的な参照から生じる任意の主題も同様に請求することができるため、請求とその特徴の任意の組合せが開示され、添付の特許請求の範囲において選択された依存関係に関係なく請求することができる。請求できる主題は、添付の特許請求の範囲に記載されている特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せも備え、特許請求の範囲において言及されている各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせることができる。さらに、本明細書で記述または描写される実施形態および特徴のいずれかは、別個の請求項において、および/または本明細書で記述または描写される任意の実施形態もしくは特徴、あるいは添付の請求の範囲の特徴のいずれかとの任意の組合せにおいて請求することができる。
【0013】
添付の図面は、いくつかの例示的な実施形態を示しており、本明細書の一部である。以下の記述とともに、これらの図面は、本開示の様々な原理を実証および説明する。
【図面の簡単な説明】
【0014】
【
図1】ハードウェアアクセラレーションを実行できる例示的な拡張カードのブロック図である。
【
図2】ハードウェアアクセラレーションを実行できる例示的な拡張カードのより具体的なブロック図である。
【
図3】本明細書で記述される拡張カードによって使用され得る様々な例示的なピン配列のブロック図のセットである。
【
図5A】例示的な拡張カードを対応する拡張ソケットに挿入するためのプロセスの初期段階の斜視図である。
【
図5B】例示的な拡張カードを対応する拡張ソケットに挿入するためのプロセスの中間段階の斜視図である。
【
図5C】例示的な拡張カードを対応する拡張ソケットに挿入するためのプロセスの最終段階の斜視図である。
【
図6】本明細書で記述される拡張カードが展開され得る例示的なマルチノード計算プラットフォームのブロック図である。
【
図7】本明細書で記述される拡張カードを収容することができる例示的なマルチノード計算プラットフォームスレッドの斜視図である。
【
図8】、本明細書で記述される拡張カードが展開され得る様々なマルチノード計算プラットフォームスレッドを収容することができる例示的なシャーシの斜視図である。
【
図9】本明細書で記述される拡張カードが展開され得る例示的な中間拡張カードのブロック図である。
【
図10A】対応する拡張カードにアクセスするためにヒートシンクが持ち上げられた、例示的な中間拡張カードの斜視図である。
【
図10B】対応する拡張カードにアクセスするためにヒートシンクが取り外されている、
図10Aの例示的な中間拡張カードの平面図である。
【
図11】拡張カードを介してハードウェアアクセラレーションを実行するための例示的な方法の流れ図である。
【発明を実施するための形態】
【0015】
図面全体を通して、同一の参照文字および記述は、必ずしも同一ではないが類似する要素を示す。本明細書で記述される例示的な実施形態は、様々な修正および代替形態の影響を受けやすいが、特定の実施形態が図面に例として示されており、本明細書で詳細に記述される。しかしながら、本明細書に記述される例示的な実施形態は、開示される特定の形態に限定されることが意図されるものではない。むしろ、本開示は、添付の特許請求の範囲内に入るすべての修正、均等物、および代替物を網羅する。
【0016】
本開示は、拡張カードを介してハードウェアアクセラレーションを実行するための様々な装置、システム、および方法を記述する。以下でより詳細に説明されるように、本明細書で開示するデバイスは、ハードウェアアクセラレータをコンパクトな拡張カード(たとえば、ピン配列が、使用するバス用に定義されているピン配列仕様よりもコンパクトである、M.2、U.2、およびmSATAカードなどの拡張カード)に結合することによって、効率的、効果的、およびスケーラブルなハードウェアアクセラレーションを可能にし得る。
【0017】
従来、コンパクトな拡張カードはストレージおよびワイヤレス通信に使用されてきたが、ハードウェアアクセラレーション用にコンパクトなカードを再利用すると、従来のハードウェアアクセラレーションソリューションに比べて様々な利点を提供し得る。たとえば、特定の複雑な計算タスクを拡張カード上のハードウェアアクセラレータにオフロードすることによって、開示されたシステムは、より高価なデバイス(ドメインコントローラーなど)の計算需要を減らし、金銭的に、および/またはパワーを節約する可能性がある。開示されたシステムおよび方法はまた、様々な接続拠点における軽量デバイス(エッジサーバなど)が、通常なら対処するためのコンピューティングリソースがないはずのコンピューティングタスクを実行することを可能にし得る。さらに、特定用途向けの設計により、開示されているハードウェアアクセラレータは、汎用コンピューティングデバイスよりも効果的および/または効率的にそのようなタスクを実行し得る。最後に、開示された拡張カード(および、拡張カードのハードウェアアクセラレータ)は、コンピューティングエコシステム全体にわたって迅速かつ簡単に展開され、また細かくスケーリングされ得、そのことによって、計算量の多いタスクに対する増え続ける需要にテクノロジ企業が効率的および効果的に対応することを可能にする。
【0018】
以下では、
図1~
図4を参照して、ハードウェアアクセラレーションを実行することができる拡張カードの例(および、同じサイズのコンパクトなフットプリントを可能にする様々なピン配列仕様)を提供する。さらに、
図5A~
図5Cおよび
図10A~
図10Bに対応する記述は、そのような拡張カードを対応する拡張ソケットに挿入する、および/または取り外すための例示的な技法の概要を提供する。
図6~
図10に対応する記述は、これらの拡張カードのスケーラビリティを示し、
図11に対応する記述は、前の図に示された例示的な拡張カードのうちの1つまたは複数を使用してコンピューティングデバイスにハードウェアアクセラレーション能力を追加するための例示的なワークフローを記述する。
【0019】
図1は、本明細書に開示されるシステムおよび方法による、ハードウェアアクセラレーションを実行できる例示的な拡張カード100のブロック図である。この図に示されるように、拡張カード100は、プリント回路基板102およびプリント回路基板102上に配置された1つまたは複数のコンポーネントを含み得る。本明細書で使用する「拡張カード」という用語は、一般に、プリント回路基板によって実質的に形成された、すなわち、対応するコンピューティングデバイスまたは拡張ソケットに挿入し、そのことによってコンピューティングデバイスの機能を拡張するように構成されたカードなどのカードを指す。
【0020】
図1に示されるように、拡張カード100は、プリント回路基板102上に配置されたハードウェアアクセラレータ104を含み得る。本明細書で使用する「ハードウェアアクセラレータ」という用語は、一般に、ハードウェアにおいて、汎用中央処理装置(すなわち、ソフトウェアとして様々なプログラムを遂行するように構造されたコンピューティングチップ)によってソフトウェアにおいて実行されるコンピューティングタスクよりも効率的に1つまたは複数の特殊なコンピューティングタスクを実行するハードウェアコンポーネントまたはデバイスを指す。いくつかの例では、「ハードウェアアクセラレーション」は、ソフトウェアモジュールの中間層または他の抽象化層がない場合に発生する特定用途向けハードウェア回路におけるコンピューティングタスクの実行を指し得、したがってアプリケーションのパフォーマンスは、他の方法で遂行した場合よりも効率的である。
【0021】
一例では、ハードウェアアクセラレータ104は、特定のコンピューティングタスクを実行するように設計された特定用途向けハードウェア回路106を含み得る。この例では、ハードウェアアクセラレータ104は、特定用途向けハードウェア回路106を介して特定のコンピューティングタスクの少なくとも一部を実行することによって、データセンタサーバなどのコンピューティングデバイスの中央処理装置から特定のコンピューティングタスクの一部をオフロードするように設計され得る。本明細書で使用される「コンピューティングデバイスの中央処理装置からコンピューティングタスクの一部をオフロードする」という語句は、一般に、汎用中央処理装置(すなわち、拡張カード100が結合されるコンピューティングデバイスの中央処理装置、またはそうでなければ拡張カード100がない場合にコンピューティングタスクを実行するかもしれない別の中央処理装置)を通じてコンピューティングタスクを実行するのではなく、ハードウェアアクセラレータを通じてコンピューティングタスクを実行することを指し得る。
【0022】
図1のブロック図には示されていないが、拡張カード100はまた、プリント回路基板102上に配置され、コンピューティングデバイスの拡張ソケットに挿入されるように寸法決めされたエッジコネクタ(
図4のエッジコネクタ110など)を含み得る。一例では、エッジコネクタは、拡張ソケットに接続されたコンピューティングバスを介して、ハードウェアアクセラレータ104をコンピューティングデバイスの中央処理装置に結合し得る。
【0023】
本明細書で使用される「エッジコネクタ」という用語は、一般に、拡張カードを対応するコンピューティングバスまたはコンピューティングデバイスに結合する拡張カードのエッジにおける1つまたは複数の接続を指す。いくつかの例では、このエッジコネクタは、プリント回路基板102などのプリント回路基板の一部から形成され得る。さらに、このエッジコネクタは、基板のエッジにつながるプリント回路基板上のトレース(すなわち、ピン)を含み、これは、一致するソケットに差し込まれるように設計または構成され得る。一般に、エッジコネクタは、コンピューティングデバイスにおける(たとえば、コンピューティングデバイスのマザーボード上の)対応するメスコネクタまたはソケットと一致するオスコネクタを含み得る。
【0024】
いくつかの例では、正しい極性を確保するためにエッジコネクタにキーが付けられている場合がある。コネクタはまた、極性のために、および間違ったタイプのデバイスが拡張ソケットに挿入されないようにするために、バンプまたはノッチを包含し得る。いくつかの例では、正しいキーイングを有することに加えて、エッジコネクタは、拡張ソケットに収まるように設計された幅と厚さを有し得る。
【0025】
上記のように、また以下でより詳細に記述されるように、エッジコネクタはまた、拡張カード(および、次に、そのハードウェアアクセラレータ)が結合されているコンピューティングバス用に定義されたピン配列仕様よりもコンパクトな、コンパクトなピン配列を含み得る。本明細書で使用される「ピン配列」という用語は、一般に、拡張カード100などの電気コネクタまたは電子部品の接点間、またはピン間の相互参照、ならびにこれらの接点またはピンの機能を指す。コンパクトなピン配列は、他のピン配列よりも幅寸法が狭く、薄く、または小さく、他のピン配列よりも厚さ寸法が狭く、薄く、または小さく、他のピン配列よりもピンピッチが近く、他のピン配列よりもピンが狭く、薄く、または小さく、および/または他の方法または寸法で他のピン配列よりも小さいことによって、少なくとも1つの他の指定されたピン配列よりもコンパクトになり得る。
【0026】
コンパクトなピン配列の例として、M.2カードのピン配列がある。M.2カードは75個のピンスペースのセットを有し得、このピンスペースのセットの幅は12mm、16mm、22mm、または30mmであってよい。また、ピンの長さは2.00mm、ピッチは0.5mmであってよい。対照的に、ネイティブPCI EXPRESS x1ピン配列の仕様は、少なくとも1.0mmのピッチ、少なくとも35mmの幅、および少なくとも2.3mmの長さを定義し得る。したがって、PCI EXPRESSバスに接続し得るM.2ピン配列は、M.2ピン配列の少なくとも1つの寸法が、PCI EXPRESSバスの仕様によって定義されているピン配列よりも小さいため、PCI EXPRESSバスの仕様によって定義されているピン配列よりもコンパクトであると言える。
【0027】
一例では、拡張カード100のエッジコネクタは、1つまたは複数の混合ピンのピン配列仕様に準拠するピン配列を有し得る。本明細書で使用される「混合ピン」という用語は、一般に、拡張カードが結合するコンピューティングバスの仕様のピン配列とは異なるピン配列を有する拡張カードを指す。いくつかの例では、対応する拡張ソケットが、接続を効果的に結合する、および/または拡張カードのピン配列からのデータをコンピューティングバスによって受け入れられる形式に、またはその逆に変換する1つまたは複数の中間回路の項目を含み得るため、2つのピン配列間の競合にもかかわらず、拡張カードがコンピューティングバスと正常に結合し得る。エッジコネクタのピン配列が準拠し得る混合ピン仕様の例示的な例は、M.2ピン配列仕様、U.2ピン配列仕様、および/またはmSATAピン配列仕様を含む。
【0028】
上記で詳述したように、拡張カード100のハードウェアアクセラレータ104は、ハードウェアにおいて1つまたは複数の特定のコンピューティングタスクを実行するようにカスタマイズまたは専用設計することができる。拡張カード100のハードウェアアクセラレータ104が遂行または実行できる特定のコンピューティングタスクまたはアプリケーションのタイプの例示的な例は、これらに限定されないが、人工知能および/または機械学習トレーニング(たとえば、モデル構築、推論、フラッシャラベリングなど)、ビデオトランスコーディング(たとえば、1つのエンコード形式から中間の非圧縮形式にビデオデータを変換し、次いで、中間の非圧縮形式を別のエンコード形式またはターゲット形式に変換する)、ビデオ処理(たとえば、2つ以上のビデオストリームを単一のビデオストリーム、またはより少数のビデオストリームに組み合わせる)、データの暗号化/復号化、データの圧縮/解凍などを含む。いくつかの例では、拡張カード100のハードウェアアクセラレータ104は、積和演算、線形代数演算、機械学習またはベクトルチューニング演算、ならびに/あるいは暗号素数の識別および/または検証演算を含み得る特定のタイプの数学的演算のパフォーマンスに特に適しているか、または有益であり得る。一般に、拡張カード100のハードウェアアクセラレータ104は、ハードウェアにおいて、任意のタイプまたは形式の計算量の多いコンピューティングタスクを実行するようにカスタマイズまたは専用設計され得、そのことによって、1つまたは複数の汎用中央処理装置の負荷を軽減する(すなわち、中央処理装置とは別のチップでコンピューティングタスクを実行することによって、および/またはソフトウェアではなくハードウェアにおいてコンピューティングタスクをより効率的に実行することによって)。
【0029】
上記のように、いくつかの例では、ハードウェアアクセラレータ104の特定用途向けハードウェア回路106が実行するように設計されているコンピューティングタスクは、新しいデータの少なくとも1つのラベルを推測するために、知られているデータでトレーニングされたモデルを適用する人工知能推論タスクを含み得る。本明細書で使用される「知られているデータでトレーニングされたモデルを適用する人工知能推論タスク」という語句は、一般に、モデルを生成、トレーニング、および/または調整するプロセスではなく、トレーニングされたモデルを適用するプロセスを指す。いくつかの例では、拡張カード100のハードウェアアクセラレータ104は、新たに遭遇した、または新たに分析されたデータの1つまたは複数の項目をラベルまたは属性で効果的にラベル付けし得る。一般的に、モデルは、部分的または全体的にラベル付けされた以前に遭遇したデータに基づいて生成、トレーニング、および/または調整され得、そのことによって機械学習アルゴリズムが将来のデータの1つまたは複数のラベルを予測することを可能にする(たとえば、以前に遭遇したデータのラベル内のパターンを検出することによって)。
【0030】
いくつかの実施形態では、人工知能推論タスクは、オンラインソーシャルネットワーキングシステムに関連してユーザ属性推論タスクを含み得る。これらの例では、ユーザ属性は、関心、推奨(たとえば、広告推奨および/または友達推奨)、および/またはプッシュ通知(たとえば、ユーザのニュースフィード用に選択されたソーシャルネットワーク投稿)を含み得る。一般に、人工知能推論タスクは、ユーザの投稿履歴、投稿コンテンツ、ソーシャルメディアの「いいね」または応答アイコン選択、友達リスト、メッセージ履歴、メッセージコンテンツ、ならびに/あるいはニュースフィード項目および/または広告を含む選択またはクリックされた項目などを含む、ユーザの1つまたは複数のデータおよび/またはメタデータの項目に基づいて、ユーザのこれらのラベルまたは属性のうちの1つまたは複数を識別し得る。一般に、人工知能推論タスクは、データまたはメタデータの1つのセットを持つユーザが、データまたはメタデータの類似または同一のセットを有する別のユーザとラベルを共有する傾向があることを推測または予測し得る(たとえば、予測の強度は、2人のユーザのデータ/メタデータの項目間の類似性に比例する場合がある)。
【0031】
ハードウェアアクセラレータ104は、様々な形態を取り得る。ハードウェアアクセラレータの例示的な例は、これらに限定されないが、グラフィックス処理ユニット、暗号化アクセラレータ、ビデオ処理ユニット、人工知能アクセラレータ、コプロセッサ、デジタル信号プロセッサ、および/または公開キー暗号化アクセラレータを含む。いくつかの例では、ハードウェアアクセラレータ104は、特定用途向け集積回路(ASIC)および/またはフィールドプログラマブルゲートアレイ(FPGA)を介して実装され得る。
【0032】
図2は、拡張カード100のより具体的な例のブロック図である。この図に示されるように、拡張カード100は、ASIC201の形式のハードウェアアクセラレータを含み得る。この図にさらに示されるように、拡張カード100は、コンピューティングデバイスの対応する拡張ソケットを介して受け取った電圧を安定化し、その電圧をハードウェアアクセラレータ104に供給し得る1つまたは複数の電圧レギュレータ202などの、様々な追加のコンポーネントを含み得る。この図に示されるように、拡張カード100はまた、ダイナミックランダムアクセスメモリ(DRAM)204の1つまたは複数のインスタンスを含み得、各々はハードウェアアクセラレータ104に結合され得る。拡張カード100はまた、抵抗器、コンデンサ、インダクタ、および/またはトランジスタを含む1つまたは複数のパッシブコンポーネント206を含み得る。追加的または代替的に、拡張カード100はまた、1つまたは複数のアクティブコンポーネントを含み得る。パッシブコンポーネントおよび/またはアクティブコンポーネントの各々は、ハードウェアにおいて、上述のビデオトランスコーディングおよび/または人工知能推論タスクなどの問題の特定のアプリケーションを遂行または実行する(および/または、ASIC 201が実行することを可能にする)構成で、拡張カード100上に特に設計および/または設置され得る。最後に、拡張カード100はまた、エッジコネクタ、および/または拡張カード100が結合され得るコンピューティングバスにわたる送信のためにASIC201によってフォーマットされたデータを変換し得るPC EXPRESSインターフェースなどのコンピューティングバスインターフェース208も含み得る。
【0033】
上記で詳述したように、拡張カード100のエッジコネクタは、M.2仕様などの1つまたは複数の混合ピンのピン配列仕様に準拠するピン配列を有し得る。
図3は、拡張カード100が利用し得る、M.2仕様に準拠するエッジコネクタのピン配列の様々な例を示している。この図では、要素302および304は、M.2仕様の「Bキー」および「Mキー」エッジコネクタ構成に準拠する拡張ソケットのピン配列を示している。このように、いくつかの実施形態では、
図1の拡張カード100のエッジコネクタ110は、要素306および308によって示されるように、「Bキー」および「Mキー」用のエッジコネクタのピン配列を含み得、そのピン配列はオスコネクタとして対応するM.2拡張ソケットに収まり得る。あるいは、拡張カード100のエッジコネクタ110は、要素310によって示されるように、M.2仕様の「B&Mキー」ハイブリッドエッジコネクタ構成に準拠するピン配列を含み得る。上記でさらに論じたように、これらの例示的なピン配列の各々は、M.2拡張カードが結合され得、M.2拡張カードが通信し得る、PCI EXPRESSコンピューティングバス仕様によって指定されたピン配列よりもコンパクトであり得る。
【0034】
図4は、エッジコネクタ110とハードウェアアクセラレータ104を含む、例示的な拡張カード100の斜視図である。一実施形態では、拡張カード100は、PCI EXPRESS 3.0(たとえば、最大4レーン)、シリアルATA 3.0、およびUSB 3.0(たとえば、後者の2つの各々に対して単一の論理ポートを使用)、ならびに/または任意の他の適切なインターフェースなどの様々なコンピュータバス用のインターフェースを提供する、対応する拡張ソケット(
図5A~
図5Cの拡張ソケット502など)に挿入されるように寸法決めされ得る。いくつかの例では、拡張カード100は、拡張カード100が特徴互換性のない拡張ソケットに差し込まれるのを防ぐために、拡張カード100の様々な目的および能力を示すキーイングノッチ(
図3に示されるものなど)を有し得る。たとえば、拡張カード100は、M.2仕様に準拠するように設計されている場合、SATAまたは2つのPCI EXPRESSレーン(PCIe×2)(「ソケット2構成」にしたがって)用のキー付き拡張ソケット、または4つのPCI EXPRESSレーン(PCIe×4)(「ソケット3構成」にしたがって)用のキー付き拡張ソケットに挿入されるように寸法決めされた75ポジションエッジコネクタを提供し得る。
【0035】
拡張カード100はまた、論理インターフェースレベルにおけるレガシアドバンスホストコントローラインターフェース(Advanced Host Controller Interface、AHCI)のサポートに加えて、論理デバイスインターフェースとしてNVM EXPRESS(NVMe)もサポートし得る拡張ソケット(M.2拡張ソケットなど)に挿入されるように寸法決めされ得る。AHCIのサポートにより、レガシSATAデバイスおよびレガシオペレーティングシステムとのソフトウェアレベルの下位互換性が保証され得るが、NVM EXPRESSはまた、多くのI/O動作を並行して実行するために、拡張カード100が高速PCI EXPRESSデバイスの能力を最大限に利用することを可能にし得る。
【0036】
拡張カード100はまた、PCI EXPRESS 3.0、シリアルATA(SATA)3.0、およびUSB3.0を含む様々なコンピューティングバスを露出する拡張ソケットに挿入されるように寸法決めされ得る。その結果、いくつかの実施形態では、拡張カード100は、ハードウェアアクセラレーションに加えて、WI-FI、BLUETOOTH、衛星ナビゲーション、近距離無線通信(NFC)、デジタルラジオ、ワイヤレスギガビット(WiGig)、ワイヤレスWAN(WWAN)、およびソリッドステートドライブ(SSD)のデバイスクラスを含む、様々な機能を統合し得る。
【0037】
いくつかの例では、拡張カード100は、最大4つのPCI EXPRESSレーンと1つの論理SATA 3.0(6ギガビット/秒)ポートを提供する拡張ソケットに挿入されるように寸法決めされ得、PCI EXPRESSとSATAデバイスの両方が拡張カード100上に存在し得るように、同じコネクタを通じて同じものを露出する。このようにPCI EXPRESSレーンを露出することによって、拡張ソケットは、ホストコンピューティングデバイスと拡張カード100との間の純粋なPCI EXPRESS接続を提供し得、バス抽象化の追加層はない。
【0038】
拡張カード100は、様々な形状およびサイズで形成され得る。一例では、拡張カード100は、片側にエッジコネクタ110を備え、反対側のエッジの中央に半円形の取付け穴を備えた、実質的に長方形の形状であってもよい。コンポーネントは、拡張カード100のいずれかの側に取り付けられてもよい。
図4の特定の例では、拡張カード100は、22mmの幅および110mmの長さを有し得、これは、M.2仕様のサイズ要件のうちの1つに準拠する。しかしながら、これらの寸法は単なる例示であり、拡張カード100は、上記で言及されたM.2仕様などの対応する拡張カード仕様に準拠する任意の適切な寸法の形式をとってもよい。たとえば、拡張カード100は、M.2仕様によって定義されているように、12、16、22、または30mmの幅、および16、26、30、38、42、60、80、または110mmの長さを有し得る。
【0039】
図3および
図4に示されるピン配列は、単なる例である。次の表は、拡張カード100が利用し得る潜在的なキーイングと提供されるインターフェースのより詳細な概要を提供する。
【0040】
さらに、次の表は、拡張カード100の潜在的なコンポーネントの厚さを示している。
【0041】
上記で詳述したように、拡張カード100は、ホスト回路基板によって提供される対応する拡張ソケットに挿入されるように寸法決めされ得る。
図5A~
図5Cは、マザーボード500上の対応する拡張ソケット502に拡張カード100を挿入または結合するためのプロセスの3つの別個の段階(すなわち、開始、中間、および終了)を示している。
図5Aに示されるように、ユーザまたは機械は、まず拡張カード100のエッジコネクタ110を拡張ソケット502に位置合わせし得る。次いで、ユーザまたは機械は、エッジコネクタ110が拡張ソケット502内に収まるように拡張カード100を押すことができる。次に、
図5Bに示されるように、ユーザまたは機械は、ねじ504を拡張カード100上にある対応する穴またはノッチ506と位置合わせし、次いで、ねじ504を穴またはノッチ506を通じて拡張ソケット502の横の対応するねじ穴508にねじ込み、そのことによって、拡張カード100を拡張ソケット502に締結し得る。
図5Cは、締結するプロセスが完了した後の拡張カード100の最終位置の一例を示している。
【0042】
いくつかの例では、拡張カード100は、より大きいシステムの一部を構成し得る。たとえば、拡張カード100は、単独で、あるいは他のコンピューティングデバイスまたはコンポーネントと組み合わせて、より大きいシステムの一部を表すコンピューティングデバイスの拡張ソケットに挿入され得る。いくつかの例では、このコンピューティングデバイスは中央処理装置を含み得る。これらの例では、拡張カード100は、上記で概説したように、特定のアプリケーションをソフトウェアにおいて実行する中央処理装置ではなく、ハードウェアにおいて問題の特定のアプリケーションを実行することによって、コンピューティングデバイスの中央処理装置の負荷を改良し得る。いくつかの例では、コンピューティングデバイスはまた、対応するソフトウェアを記憶およびロードするための場所を提供し得るメモリデバイスを含み得る。
【0043】
いくつかの代替の例では、拡張カード100が挿入されるコンピューティングデバイスは、従来の中央処理装置を含まなくてもよい。たとえば、このコンピューティングデバイスは、プリント回路基板を受け取るように寸法決めされたトレイのラックを収容するシャーシを単純に含み得、1つまたは複数のプリント回路基板は、ハードウェアアクセラレータ104などのハードウェアアクセラレータを含み得る。次いで、コンピューティングデバイスは、コンピューティングデバイスが接続されているネットワークにわたってハードウェアアクセラレータから結果を提供し得る。さらに、いくつかの例では、ハードウェアアクセラレータは、以前にコンピューティングデバイスに挿入された中央処理装置またはコプロセッサを効果的に置き換える場合がある。
【0044】
一般に、上述のシステムのコンピューティングデバイスは、ラップトップ、デスクトップ、サーバなどの、様々な異なるデバイスのうちの1つに対応し得る。コンピューティングデバイスがサーバを表す例では、コンピューティングデバイスはデータセンタ内に配置されてもよく、またはそこにあってもよく、コンピューティングデバイスはコンピューティングネットワーク(たとえば、ワイドエリアネットワーク)にわたってユーザ、クライアント、または他のサーバに計算リソースを提供し得る。たとえば、上述のシステムは、クライアントデバイスの対応するユーザに少なくとも1つのオンラインサービスを提供する法人ネットワーキング企業のバックエンドデータセンタを表し得る。このオンラインサービスは、ソーシャルネットワーキングサービス、仮想現実サービス、および/またはクラウドストレージサービスを含み得る。ソーシャルネットワーキングサービスに関連して、ハードウェアアクセラレータ104によって実行される特定のアプリケーションは、人工知能推論タスク(たとえば、投稿、関心、友人、推奨、および/またはユーザ向けの広告を予測するために、機械学習モデルを適用する)、および/またはビデオトランスコーディング(たとえば、エンコードおよび/またはデコード)演算などの上述の特定のコンピューティングタスクのうちのいずれかを含み得る。
【0045】
特定の一例では、拡張カード100が挿入されるコンピューティングデバイスは、ドメインコントローラサーバおよび/またはエッジサーバを表し得る。本明細書で使用される「ドメインコントローラ」という用語は、一般に、コンピューティングリソースの統一されたコレクションを管理するサーバを指す。さらに、「ドメインコントローラ」という用語は、テクノロジ企業のデータセンタのメインサーバまたはプライマリサーバを指し得、1つまたは複数のコンピューティングタスクの処理に優先順位を付けることができる。さらに、本明細書で使用される「エッジサーバ」という用語は、一般に、2つのネットワーク間の「エッジ」に常駐するサーバを指す。いくつかの例示的な例では、エッジサーバはプライベートネットワークとインターネットの間に常駐し得る。いくつかの例では、「エッジサーバ」は、ドメインコントローラまたはメイン/プライマリサーバよりも少ないコンピューティングリソースおよび/またはより低い計算処理パワーを有するコンピューティングデバイスを指し得る。いくつかの例では、上記で論じたように、拡張カード100上のハードウェアアクセラレータ104などのハードウェアアクセラレータを通じてコンピューティングタスクを実行せずに、エッジサーバが人工知能推論タスクおよび/またはビデオトランスコーディングタスクなどの計算コストの高いコンピューティングタスクを実行することは非現実的または不可能な場合がある。言い換えれば、拡張カード100などのハードウェアアクセラレータカードをエッジサーバに挿入すると、エッジサーバが複雑なコンピューティングタスクを実行することが可能になり得、そのことによって、エッジサーバを、複雑なタスクを効率的または効果的に実行することができないシステムから、複雑なタスクに確実に対処することができるシステムに変換する。
【0046】
いくつかの実施形態では、拡張カード100が挿入されるコンピューティングデバイスは、マルチノード計算プラットフォームを表し得る。一例では、このマルチノード計算プラットフォームはスレッドを含み得、スレッドは1つまたは複数のモジュール式コンピューティングデバイス(サーバカードまたはストレージキャリアカードなど)をさらに含み得る。以下でさらに論じるように、この例では、サーバまたはキャリアカードのうちの1つまたは複数は、拡張カード100を受け入れ、ハードウェアアクセラレーション用に再利用されるように寸法決めされた少なくとも1つの拡張ソケットを含み得る。
【0047】
図6は、ハードウェアアクセラレーションのために部分的または全体的に再利用され得る例示的なマルチノード計算プラットフォーム630のブロック図である。
図6に示されるように、マルチノード計算プラットフォーム630はいくつかのベイで構成され得、各々がモジュール式ストレージデバイス610(たとえば、SSDキャリアカードまたはデバイスキャリアカード)、モジュール式コンピューティングデバイス620(たとえば、マイクロサーバカード)、および/あるいは任意の他の適切なタイプまたは形態のモジュール式ノードを収容し得る。
図6は、4つのベイを備えたマルチノード計算プラットフォーム630を示しているが、マルチノード計算プラットフォームは、他の任意の数のベイを含み得る。
【0048】
ハードウェアアクセラレーションのためにマルチノード計算プラットフォームを再利用することは、拡張カード100などの1つまたは複数のハードウェアアクセラレータ拡張カードをマルチノード計算プラットフォーム内のコンパクトな拡張スロットに挿入することを伴い得る。
図6に示される例では、ハードウェアアクセラレータ拡張カード(拡張カード100など)は、モジュール式コンピューティングデバイス620の拡張ソケット622の一方または両方に挿入され得る。追加的または代替的に、ハードウェアアクセラレータ拡張カードは、モジュール式ストレージデバイス610のいずれかまたは両方における1つまたは複数の拡張ソケット612に挿入され得る。
【0049】
ハードウェアアクセラレーションのためにコンパクトな拡張カードソケットを再利用することによって、本開示の実施形態は、ハードウェアアクセラレーション機能でマルチノード計算プラットフォーム630を補完し得る。このように、開示されたシステムと方法は、データセンタの管理者または自動化システムが、1つまたは複数のハードウェアアクセラレーション拡張カードをマルチノード計算プラットフォーム内のコンパクトな拡張ソケットに単に挿入して有効にすることによって、計算コストの高いコンピューティングタスクに対処するために、マルチノード計算プラットフォームの能力を効率的にスケーリングすることを可能にし得る。
【0050】
上記のように、および
図7に示されるように、マルチノード計算プラットフォーム700は、
図7のスレッド702などの1つまたは複数のスレッド上のモジュール式コンピューティングデバイスを受け入れるように寸法決めされ得る。この例では、スレッド702は、対応するトレイ703を受け入れるためのいくつかのベイまたはスロットを含み得、各々は、モジュール式コンピューティングデバイス(たとえば、サーバカード)またはモジュール式ストレージデバイス(たとえば、SSDカードなどのキャリアまたはデバイスカード)を含み得る。この図に示されるように、スレッド702は、対応するトレイ703を受け入れるための4つの別個のスロットを含み得る。各トレイ703は、少なくとも1つの締結するメカニズム704を含み得る。
図7は、各トレイ703がモジュール式コンピューティングデバイスおよび/またはモジュール式ストレージデバイスを保持し得る方法をさらに示し、各々は、拡張カード100が挿入され得る少なくとも1つの拡張ソケットを含み得る。
【0051】
図8は、拡張されたマルチノード計算プラットフォーム800の斜視図である。この図に示されるように、プラットフォーム800は、スレッド702などのスレッドのセットを含み得、各々は、モジュール式コンピューティングおよび/またはストレージデバイスを包含する複数のトレイ703を受け入れることができる。これらのデバイスにおいてコンパクトな拡張ソケットを再利用することによって、開示されたシステムおよび方法は、計算コストの高いコンピューティングタスクのために、データセンタのスケーリング(たとえば、高価なサーバの追加を伴わない、および/またはデータセンタにおける追加スペースを必要としない場合があるスケーリング)の劇的な改善を促進し得る。より具体的には、データセンタの管理者は、(i)拡張カード100などの1つまたは複数の拡張カードを、モジュール式コンピューティングおよび/またはストレージデバイスを収容する単一のトレイ(トレイ703など)に追加すること、(ii)スレッド(スレッド702など)にモジュール式コンピューティングまたはストレージデバイスの追加のトレイを追加することであって、各々が拡張カード100の1つまたは複数のインスタンスを含み得ること、(iii)追加のスレッド(スレッド702など)をシャーシに追加することであって、各々がスレッドには拡張カード100の追加のインスタンスを包含し得ること、ならびに/あるいは(iv)追加のシャーシおよび/またはサーバラックを追加することであって、各々が拡張カード100の追加のインスタンスを包含する複数のスレッドを受け入れ得ることによって、人工知能推論動作やビデオトランスコーディング動作などの複雑なタスク用にハードウェアアクセラレーションリソースを便利にスケーリングし得る。
【0052】
このようにして、開示されたシステムおよび方法は、マルチノード計算プラットフォームを再利用または再設計し得、より具体的には、プラットフォームに1つまたは複数のハードウェアアクセラレータを補完するために、以前はソリッドステートドライブを介して大容量ストレージ専用に使用されていた可能性があるモジュール式コンピューティングおよび/またはストレージデバイスを再設計する。この方法で構成されたマルチノード計算プラットフォームは、M.2仕様などのコンパクトな拡張カード仕様によって提供されるきめ細かいスケーラビリティの恩恵を受ける可能性がある。コンパクトな拡張カードの劇的に小さいフォームファクタにより、PCI EXPRESS拡張カードなどの従来の拡張カードと比較して、同じ表面積内でより多くの拡張ソケットが可能になり得る。
【0053】
いくつかの例では、拡張カード100が挿入される拡張ソケットは、中間拡張カード上に配置され得る。本明細書で使用する「中間拡張カード」という用語は、一般に、以下でさらに論じるように、入れ子式に追加の拡張カードを受け入れるように寸法決めされた少なくとも1つの拡張ソケットを含む任意の拡張カードを指す。
図9に示されるように、例示的な中間拡張カード900は、2つ以上の別個の拡張ソケット902を含み得、各々は、拡張カード100のインスタンスをそれぞれ受け入れるように寸法決めされ得る。
図9の特定の例では、中間拡張カード900は、各々が拡張カード100のインスタンスを受け入れることができる4つの別個の拡張ソケットを含み得る。特定の数の拡張ソケットは単なる例示であり、中間拡張カード900の他の例は、より少数またはより多数の拡張ソケットを含み得る。
【0054】
いくつかの例では、中間拡張カード900は、中間拡張カード900が接続されるように設計されたコンピューティングバスに対して定義されたピン配列仕様に準拠するピン配列を有するエッジコネクタを含み得る。たとえば、中間拡張カード900のエッジコネクタのピン配列は、PCI EXPRESS仕様に準拠し得る。したがって、中間拡張カード900のエッジコネクタがコンピューティングデバイス(コンピューティングデバイス910など)上のPCI EXPRESS拡張ソケットに挿入されると、中間拡張カード900はコンピューティングデバイスのPCI EXPRESSコンピューティングバスに結合され得る。
【0055】
対照的に、中間拡張カード900の拡張ソケット902に挿入されるように寸法決めされ得る拡張カード100は、中間張カード900が接続されるコンピューティングバス用に定義されたピン配列仕様よりもコンパクトなピン配列を含むエッジコネクタ110を含み得る。たとえば、拡張カード100のエッジコネクタ110は、拡張カード100のピン配列が、拡張カード100が最終的に(中間拡張カード900を介して)接続されるコンピューティングバス(すなわち、PCI EXPRESSコンピューティングバス)のピン配列仕様よりコンパクトになるように、PCI EXPRESS規格によって定義されたピン配列仕様よりもコンパクトなM.2規格に対して定義されたピン配列仕様に準拠し得る。
【0056】
図10Aは、上記で論じたように、拡張カード100のインスタンスなどの4つの別個のM.2モジュールを受け入れるための4つの別個のM.2拡張ソケットを含み得る例示的な中間拡張カード1000の斜視図である。この図に示されるように、中間拡張カード1000はヒートシンク1010を含み得、ヒートシンク1010を持ち上げると、一致する拡張ソケット1030に以前に挿入された拡張カード100が現れ得、そのことによって中間拡張カード1000にハードウェアアクセラレーション機能を提供する。完全を期すために、
図10Bはまた、ヒートシンク1010が完全に取り外された、または省略された後の中間拡張カードの平面図を提供し、そのことによって、中間拡張カード1000の拡張ソケット1030内に固定された拡張カード100の例を完全に現す。これらの図に示されるように、中間拡張カード1000はまたエッジコネクタ1020を含み得、エッジコネクタ1020は、この例ではPCI EXPRESSピン配列仕様に従って寸法決めまたはフォーマットされ得る。
【0057】
上記で最初に論じたように、開示されたシステムは、たとえば、コンピューティングデバイス内の拡張カード100のインスタンスの数を増やすこと、モジュール式コンピューティングデバイスまたはモジュール式ストレージデバイス(各々が拡張カード100のインスタンスを包含し得る)の数を増やすこと、マルチノード計算プラットフォーム(各々が、複数のモジュール式コンピューティングおよび/またはストレージデバイスを包含し得る)のシャーシ内で接続されるスレッドの数を増やすこと、および/またはマルチノード計算プラットフォーム内のサーバラックまたはシャーシの数を増やすことを含む、様々な寸法に沿ってスケーリングされ得る。このように、開示されたシステムおよび方法は、マルチノード計算プラットフォームが1つまたは複数の拡張カード(ハードウェアアクセラレータ104を備えた拡張カード100など)を挿入および/または起動することによって、スケーリングするために設計または改造され得ることを実証し、そのことによって、便利かつ即座に、これらの追加リソースを、対応するプログラム、サービス、アプリケーション、および/またはプロセスにとって利用可能にする。
【0058】
図11は、ハードウェアアクセラレーションを実行するための例示的なコンピュータ実装方法1200の流れ図である。
図11に示されるステップは、
図6~
図10に関連して上記で論じたシステム、および/またはその1つまたは複数の変形または組合せを含む、任意の適切なコンピュータ実行可能コードおよび/またはコンピューティングシステムによって実行され得る。一例では、
図11に示されるステップの各々は、その構造が複数のサブステップを含む、および/または複数のサブステップによって表されるアルゴリズムを表し得、その例は以下により詳細に提供される。
【0059】
図11に示されるように、ステップ1110において、本明細書で記述するシステムのうちの1つまたは複数は、コンピューティングデバイスの拡張ソケットに拡張カードを挿入し得る。たとえば、データセンタの管理者、データセンタのロボット、元の機器製造会社、および/または自動管理システムは、
図6~
図10に示されるシステムのうちの1つまたは複数の一部として、拡張カード100を、マルチノード計算プラットフォーム内のモジュール(たとえば、モジュール式コンピューティングデバイス620および/またはモジュール式ストレージデバイス610)などのコンピューティングデバイスの拡張ソケット、ならびに/あるいは、中間拡張カード(中間拡張カード900)などに挿入し得る。
【0060】
拡張カード100は、様々な方法でコンピューティングデバイスに挿入され得る。一般に、拡張カード100は、
図5A~
図5Cに示される拡張カード100の挿入と並行する方法でコンピューティングデバイスに挿入され得る。言い換えれば、拡張カード100をコンピューティングデバイスに挿入することは、拡張カード100を対応する拡張ソケットに対してしっかりと固定するために、ねじ504をねじ穴508に挿入することを伴い得る。さらに、拡張カードをコンピューティングデバイスに挿入することは、エッジコネクタ110を対応する拡張ソケットと位置合わせし、次いで、拡張コネクタ内にしっかりとエッジコネクタ110を押し込む、または埋め込むことを伴い得る。さらに、
図9、
図10A、および
図10Bの実施形態に関連して、拡張カード100を拡張ソケットに挿入することは、拡張カード100を中間拡張カード900などの中間拡張カードの拡張ソケット902などのソケットに挿入することをさらに含み得る。
【0061】
さらに、いくつかの例では、方法1100は、追加の拡張カードをコンピューティングデバイスの追加の拡張スロットに挿入することによって、コンピューティングデバイスのハードウェアアクセラレーション能力をスケーリングすることをさらに含み得る。一般に、追加の拡張カードは、拡張カード100の構造および/または機能と並行する場合がある。たとえば、追加の拡張カードは、コンピューティングタスクを実行するように設計された追加の特定用途向けハードウェア回路をさらに含む、ハードウェアアクセラレータ(たとえば、ハードウェアアクセラレータ104のインスタンス)を含み得る。同様に、追加の拡張カードはまた、エッジコネクタ110に並行する追加のエッジコネクタをさらに含み得、これについては、
図4および
図5A~
図5Cに関連してさらに上記で論じた。エッジコネクタ110と同様に、追加の拡張カードの追加のエッジコネクタは、コンピューティングバス用に定義されたピン配列仕様(たとえば、PCI EXPRESSコンピューティングバス仕様)よりもコンパクトな、コンパクトなピン配列(たとえば、M.2仕様に従った)を含み得る。
【0062】
上記のように、コンピューティングデバイスのハードウェアアクセラレーション能力をスケーリングするために、追加の拡張カードを追加の拡張スロットに挿入することは、様々な方法で実行され得る。いくつかの例では、コンピューティングデバイスのハードウェアアクセラレーション能力のスケーリングは、モジュール式ストレージデバイス610の拡張ソケット612などの対応する拡張ソケットに単一の追加の拡張カードを挿入することを単に伴い得る。他の例では、追加の拡張カードを挿入することは、より大きいコンポーネントを対応するコンピューティングデバイスまたはシステムに挿入または追加するためのプロセスの一部として実行され得る。たとえば、
図6に関連して、追加の拡張カードは、追加の拡張カードをさらに含む(たとえば、拡張ソケット622などの拡張ソケットに挿入される追加の拡張カードを含む)モジュール式ストレージデバイス610および/またはモジュール式コンピューティングデバイス620を追加することによって、コンピューティングデバイスに追加され得る。同様に、
図8の例では、コンピューティングデバイスのハードウェアアクセラレーション能力のスケーリングは、スレッド702などの追加のスレッドを、マルチノード計算プラットフォーム630の対応するシャーシまたはラック内に挿入することをさらに含み得る。
【0063】
再び
図11を参照すると、ステップ1120において、上述のシステムのうちの1つまたは複数は、特定用途向けハードウェア回路を介してコンピューティングタスクの一部を実行することによって、中央処理装置からコンピューティングタスクの少なくとも一部をオフロードし得る。たとえば、ハードウェアアクセラレータ104は、
図6~
図10のシステムの一部として、6-10、特定用途向けハードウェア回路106を介してコンピューティングタスクの一部を実行することによって、人工知能推論タスクおよび/またはビデオトランスコーディングタスクなどのコンピューティングタスクの一部を中央処理装置からオフロードする。
【0064】
ハードウェアアクセラレータ104は、様々な方法でコンピューティングタスクの一部をオフロードし得る。一般に、ハードウェアアクセラレータ104は、
図1、
図2、および
図4に関連して上記のハードウェアアクセラレータ104の議論と並行する方法でコンピューティングタスクの一部をオフロードし得る。より具体的には、ハードウェアアクセラレータ104は、コンピューティングタスク自体の少なくとも一部を実行し得、したがって、1つまたは複数の中央処理装置がコンピューティングタスクの少なくとも一部を実行する負荷を軽減する。さらに、上記でさらに論じたように、ハードウェアアクセラレータ104は、ソフトウェアにおいてコンピューティングタスクの一部を実行するのではなく、ハードウェアにおいてコンピューティングタスクの少なくとも一部を実行し、そのことによって、コンピューティングタスクの一部を、中央処理装置よりも速くより効率的に実行し得る。
【0065】
結論として、
図1~
図11に関連して上記で論じたデバイス、システム、および方法は、ハードウェアアクセラレーションを実行するためにコンパクトな拡張カード技術を再利用することによって、データセンタまたは他のコンピューティング環境を改善し得る。たとえば、コンパクトな拡張カードにハードウェアアクセラレーションを実装することによって、開示されたシステムおよび方法は、ドメインコントローラの中央処理装置の負荷を軽減または改良し得る。さらに、上記のように、開示されたハードウェアアクセラレーションの実施形態は、エッジサーバが1つまたは複数の計算コストの高いコンピューティングタスクを効率的に実行することを可能にし得る。したがって、開示されたシステムおよび方法は、技術企業が、計算に高価なコンピューティングタスクを管理できるインフラストラクチャに対する需要の予想される増加によりうまく対処し、適応することを可能にし得る。
【0066】
前述の開示は、特定のブロック図、フローチャート、および例を使用して様々な実施形態を明記しているが、本明細書で記述および/または図示される各ブロック図コンポーネント、フローチャートのステップ、動作、および/またはコンポーネントは、個別におよび/または集合的に、幅広いハードウェア、ソフトウェア、またはファームウェア(またはそれらの組み合わせ)構成を使用して実装され得る。さらに、同じ機能を実現するために他の多くのアーキテクチャが実装され得るため、他のコンポーネントに包含されるコンポーネントの任意の開示は本質的に例と見なされるべきである。
【0067】
本明細書で記述および/または図示されるプロセスパラメータおよびステップのシーケンスは、例としてのみ与えられており、必要に応じて変更することができる。たとえば、本明細書で例示および/または記述されるステップは特定の順序で示され、または論じられ得るが、これらのステップは必ずしも示された、または論じられた順序で実行される必要はない。本明細書で記述および/または例示される様々な例示的方法は、本明細書で記述または例示するステップのうちの1つまたは複数を省略してもよく、または開示されたものに加えて追加のステップを含んでもよい。
【0068】
上記の記述は、他の当業者が本明細書に開示される例示的な実施形態の様々な態様を最大限に利用できるようにするために提供された。この例示的な記述は、網羅的であること、または開示された正確な形式に限定されることが意図されるものではない。本開示の趣旨および範囲から逸脱することなしに、多くの修正および変形が可能である。本明細書に開示された実施形態は、あらゆる点で例示的であり、限定的ではないと見なされるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびそれらの均等物が参照されるべきである。
【0069】
特に明記しない限り、本明細書および特許請求の範囲において使用される「~に接続される(connected to)」および「~に結合される(coupled to)」という用語(および、それらの派生語)は、直接および間接(すなわち、他の要素またはコンポーネントを介して)接続の両方を許可するものと解釈されるべきである。さらに、本明細書および特許請求の範囲において使用される「a」または「an」という用語は、「少なくとも1つ(at least one of)」を意味すると解釈されるべきである。最後に、使いやすさのために、明細書および特許請求の範囲で使用される「含む(including)」および「有する(having)」という用語(およびそれらの派生語)は、「備える(comprising)」という語と交換可能であり、同じ意味を有する。