版はこちらからご利用になれます。アルゴリズムの実行においてパフォーマンスと電力消費を大幅に向上することが分かっています。ソフトウェアからオフロードして、実行に大規模な並列処理や深いパイプラインを適用することでもたらされます。データセンターとワークロードの双方に大きなメリットをもたらすと考えられます。アクセラレーションの提供を開始しました。市場に浸透するにつれて、この傾向は確実に加速するでしょう。つの点で最も深刻です。異なる意味を持つことが原因です。それぞれにおいて「プログラミング」は、異なる種類のタスクを指し、異なるスキルを意味します。実行する命令の順序付けされたリストを作成することを意味します。ハードウェアはブラックボックスであり、プログラミング・ツール・チェーンによって生成された機械言語命令を正しく実行します。セマフォーなどによって順序付けに制約を課すことはできますが、プログラマーからは命令実行の実際の順序とタイミングは見えません。プログラミングも一般に人間が解読可能な言語と翻訳ツールから開始します。高水準言語は、命令シーケンスを作成するためではなく、アルゴリズムを記述するために使用されます。つの目的では、プログラミング・スタイルとベスト・プラクティスが大きく異なります。アルゴリズムを記述するため、ツールチェーンは次の新たな段階に進みます。この段階では、ビットとバイトでデータ構造が定義されます。ロジックの構成を指定しているため、この開発プロセスはプログラミングと言うよりも「構成」と言ったほうが適切かもしれません。ツールチェーンは、ソフトウェア開発にはない次の段階に進みます。開発者は後続のステップを管理するタイミング制約を指定する必要があります。実際のハードウェア・マクロ関数、ロジックエレメント、インターコネクト・セグメントにマップします。開発者は、このチェーン全体をプログラミングと呼ぶかもしれません。実際にプログラミングのようなものから始まりますが、すぐにハードウェアの構成という非常に異なるものになります。つの文化的な違いは、複雑で難解な自動化された管理とオーケストレーションです。数千ものアプリケーションがスタンバイ状態とアクティブ状態の間を遷移しているクラウド・データセンターでは、場合によってはミリ秒で自動化を制御する必要があります。リソースを追跡、更新、保守して、請求する必要があります。ワークロードを認証し、リソース要求を満たし、実行を監視して、正常に終了する必要があります。これらすべてをデータセンターのインフラストラクチャーを最適に使用して行う必要があります。ツールはデータセンター・ファブリックの均一性に依存しています。データセンターのリソースをネットワークを介してサーバーに仮想的に供給できることも重要です。この環境にどのように適合するかは明らかではありません。理論上は異なる構成を持つことが可能です。それらの構成はミリ秒単位では変更できますが、ナノ秒では変更できません。それらはファブリックのすべての計算ノードに存在するわけではありません。機能、空間、時間に多様性をもたらします。データセンター・ファブリックに追加すると、チップを特定の機能に固定し、ユーザーに対して透過的に保つことで、不一致の問題を回避できます。価値をアプリケーション開発者とエンドユーザーが利用できるようにするには、単にチップをカードに配置してカードをサーバースロットに装着するだけでなく、さらに多くの作業が必要になります。この取り組みはハードウェア・レベルから開始し、抽象化レベルを上げながら、ソフトウェア開発者やデータセンター・オペレーターのレベルに至るまでの段階を経ていく必要があります。この作業は、ネットワーク・エンジニアの概念を借りて、スタックとしてモデル化できます。シリコンのレベルでは、設計者は数々の決定を下す必要があります。要因から技術的に可能ですが、現実的ではありません。配置して、チップのシリアルポートがラックのバックプレーン・ネットワークにアクセスできるようにするアプローチが考えられます。対するスレーブ・アクセラレーターとして動作することも、ネットワークから直接データをストリーミングすることもできます。プログラマブル・アクセラレーター・カードで採用されています。つの設計努力が必要とされます。ファイルのロード以外、ほとんど何もできません。便利なアクセラレーターとする機能をチップに設定する必要があります。これらの機能は、シグナルブリッジと呼ばれる、ユーザー定義関数が利用可能なハードウェア・ガスケットを作成します。ガスケットの設計には、FPGA、CPU、サーバーボード設計者の協力が必要なことは明らかです。アクセラレーション関数を初期化し、制御することを可能にします。オペレーティング・システムのカーネルと統合されたデバイスドライバーは、OS、ハイパーバイザー、ユーザー・ワークロードに対してこれらの制御と監視操作を物理的に利用可能にします。利用可能であっても、実際に利用できるとは限りません。スタックにはこのほかのレイヤーもあります。構成できるようにするツールまで、さまざまなものがあります。ベンダーによってのみ使用されます。コードに変換するツールがあります。つに分けることができます。関数、前述のガスケットでは記述することが困難な関数とリンクされ、完全なアクセラレーターの記述が生成されます。ハードウェアへのマップが行われます。最後に、ベンダーツールによって、チップ上の個々の構成レジスターへロードする値を含む構成ファイルが作成されます。開発者の経験が必要になる場合があります。膨大なリソースをアルゴリズムに利用するため、並列プログラミングやパイプライン構造に関する経験を前提としています。最近では、並列処理、パイプライン、ストリーミングの概念を理解するためのやや高レベルのツールに強い関心が寄せられています。利用してカーネルの実行を制御します。サブセットでその並列化と管理方法が記述されています。リソースで並列化するようにコードをコンパイルします。エキスパートによる介入の必要性をほとんど排除し、展開までの時間を大幅に短縮します。アクセラレーションの可能性を特定し、カーネルに実装するプロセスは、簡単でもなければ、常に直感的でもありません。上で並列ハードウェアを作成するためのものではありませんが、非常に役に立ちます。開発のささいな違いであっても、彼らの目的には無関係であると見なします。アクセラレーションを呼び出すライブラリーを提供してくれる外部の専門家です。これはすでにアプリケーション全般で広く使用されているライブラリーでは行われています。導入が進むにつれて、より専門的なライブラリーでもこのアプローチが採用されるでしょう。特定の分野の取り組みを対象とします。アクセラレーションの統合です。これもすでに行われています。アーキテクチャーと動作の問題から完全に除外されています。意識しておらず、パフォーマンスを大幅に向上する設定としか認識していないでしょう。アクセラレーションを要求し、利用可能な場合は適用するターンキー・アプリケーションが増加するでしょう。現時点では、アルゴリズムの適応、ライブラリー開発、テスト、統合に多くの労力が費やされていますが、アプリケーション・ユーザーには実行時間の大幅な短縮や高スループットしか見えていません。開発環境テストの問題は、スタックの次のレベルである環境レイヤーにつながります。実装の開発方法に関係なく、ほかのクラウド・アプリケーションと同じデバッグ環境が必要になります。アクセラレーション・パッケージには、ソフトウェアのみのワークロードには存在しない重大な問題があります。ロジックを初期化し、実行を開始/停止するため、チップのドライバーにアクセスできなければなりません。ガスケットロジックによるサポートを必要とします。アクセラレーション・コードのデバッグは、ソフトウェアのみのデバッグとは異なります。同等の機能もありません。これらの機能のほとんどは、ガスケットロジックからのサポートとユーザーのロジック設計にデバッグ構造を明示的に含めることを必要とします。アクセラレーション・コードのデバッグは、直感と推測で行われるわけではありません。構成のソフトウェア・シミュレーションを提供するツールがあります。生成し、開発者がまずソフトウェアのみの環境で高レベルのデバッグを行うことができます。ロジック・アナライザーなどのツールもあります。検証済みのライブラリーとフレームワークを使用するほとんどのユーザーは、そのようなツールを必要とせず、コンパイル済みのソフトウェア関数を呼び出すのと同じように、ソースレベルでコードをデバッグします。MANOクラウド・データセンターの多くのタスクは、ユーザーコードを直接実行しません。管理タスクは、ファブリック内のどこにリソースがあるのか追跡し、更新が完全に展開されていることを確認し、請求のためリソースの使用を追跡し、例外に対応します。オーケストレーション・タスクは、理想的にはリソース使用率とタスク・パフォーマンスの両方を最適化する方法で、計算、ネットワーク、ストレージリソースをタスクに割り当てます。ハイパーバイザーは、仮想マシンを作成し、それらを互いに保護し、物理リソースにバインドします。アクセラレーターの特殊な状況に対処する必要があります。ユーザーレベルの機能がありません。計算リソースをインストールできるレセプタクルのようなものです。あるガスケットコードのバージョン、実装されているユーザー機能、ほかの機能に利用可能なリソースを調査することを意味します。ドライバーからの例外信号を解釈して、適切に処理することも意味します。オーケストレーションの自動化の課題はやや異なります。内部メモリーの割り当ても理解する必要があります。決定しなければなりません。この問題は、粒度の細かい不揮発性メモリーの大きなブロックを持つサーバーのオーケストレーションで直面する課題に似ていますが、より多くの制約があります。移動することの意味を理解している必要があります。オーケストレーション・ツールと同様に、ハイパーバイザーも均一なファブリックを好みます。ワークロード要求、構成、リリースにおいて蓄積される細かな不均一性は、ハイパーバイザーにとって課題となります。アクセラレーションは大幅なパフォーマンス・ゲインをもたらしてきました。サーバーラックに追加しただけでは、多くのアプリケーション開発者はこのゲインを利用できません。自動化フレームワークに適合させることもできません。これらの課題に対処するには、適合スタックが必要です。向けのドライバーも必要です。さまざまなプログラミングと構成ツール、ライブラリー、開発フレームワーク、ターンキー・ソリューションも必要です。自動化ツールと主要ベンダーのハイパーバイザーとの緊密な統合も不可欠です。これらすべてを満たして初めて、実現できます。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。Program」の日本語参考訳です。参加して、ご意見をお寄せください。Cities」の日本語参考訳です。Storage」の日本語参考訳です。sessions」の日本語参考訳です。Optimizations」の日本語参考訳です。版はこちらからご利用になれます。サイトはエクセルソフト株式会社が運営しています。社名、製品名などは一般に各社の表示、商標または登録商標です。