> キャメロンの『アバター』のデジタルキャラクター制作を監督した。サーガルは工学と芸術を統合 : > 芸術的な「顔」と最新のAI学習・スピーチソフトウェアを組み合 ry > 。その天使のような顔の背後には、最先端の、そして恐怖を抱かせるほどの技術 ry > 。宙に浮いた状態の目が血管で精密に描かれた脳に ry > 単語を見せると、言語を扱う脳の部分が紫色に輝いた。ほめると、快楽中枢が黄色に輝いた。 >「研究者たちは、認知のコンピュータモデルとその断片をたくさん作ってきたが、 ry ひとつにまとめ ry >。「それを私たちはや ry 。回路 ry 身体に入れる。人間型コンピュータのために中枢神経系を作る ry > 、ベイビーXの脳内のニューロンとシナプスの複雑な画像 ry > 、ベイビーXが何かをすると、さまざまな強さで輝く細い線や結節の超複雑なハイウェイだ。 >このエンジニアリング ry チームが数年かけて脳 ry の研究を取り入れ、統合した。 >基底核は視床に、視床は偏桃体にとつな ry (触覚処理、報酬処理、記憶形成)が配置される。 > ry チームは人間の脳の最も詳細な地図を構築し、それを使って驚くべき一連のシミュ
>ベイビーXはただの精密な画像ではない。むしろ、生きた回路基板 ry 。バーチャル ry セロトニン、 > オキシトシン、その他の化学物質が実験体に注ぎ込まれ、バーチャルの神経受容体を活性化 ry > 脳がバーチャルなドーパミンを放出し、特定の領域を輝かせ、顔のレイヤーに微笑 ry > 。オーランド大学のマーク・サーガル博士と彼のチームが開発 > したオペレーティングシステム、ブレイン・ランゲージを介してすべてのパーツが連携 > ry 、何が社会的学習を促すのか、何が自由意志の性質なのか、何が好奇心を引き出すのか、 > それがどのように世界に現れるのか : > ベイビーXのバージョン5.0 ry には身体があり、ハイチェアに座 ry > 。手で何かをしようとすると、足が前後に揺れる。 >ry 、ベイビーXの前に仮想のガラス板 ry の上には、インターネットブラウザなどさまざまなものを投影 ry > 、バーチャルピアノのキーボードやスケッチ.IOの描画パッドなどを与えて、ベイビーXがどうするか ry >。結局、ベイビーXは他の子供と同 ry 鍵盤に触れると、音 ry 波形に変え、 >ベイビーの生物学的シミュレーションに送り ry 聴覚システム内の信号 ry >。これとは別に、ベイビーXの指の中に設置された仮想触覚受容 ry 脳内にデジタルドーパミンを放出する。 >「初 ry 新鮮だった。ベイビーXはそれまで何かに触れても、この反応 ry >発見の感覚をシミュレート ry 感覚運動ニューロンの柔軟性を変え、その瞬間に学習が可能になる」 >ry 赤ん坊と同じように、ピアノに飽きる ry 。鍵を叩き続けると、脳の受容体 ry ドーパミンの量が減 ry > キーボードを無視
commonpost.info/?p=98984 > 「BabyX」は女の子で、実際の乳児の脳の神経行動を模倣したアルゴ ry > しぐさは、オークランド大学のマーク·サーガル博士の娘であるフランチェスカちゃん ry >。「BabyX」は、カメラ ry 、画像や文字 ry 音も認識 ry 、言葉から学習 ry > 笑っている理由は、褒められたことで仮想の神経伝達物質「ドーパミン」が放出 ry > 、嫌なことをされる仮想の「コルチゾール」が放出され、ストレスがたまります。 >ry 表情も認識しており、それらの情報を統合 ry >。すでに「ミルク」などの言葉を理解 ry 。最終目標は、成長を続けて大人
visual-shift. jp/detail_142.html >人間のように学び反応する自律型アバター。対人・対面のコミュ ry 特化 ry 表情や声 ry > 、バイオベースの「脳」を持っているという点。 >ry 、笑顔で「羊」 ry 、生物化学にもとづいてモデル化された脳が処理・反応 ry >Soul Machinesは人間の脳の仕組みを分析し ry 豊かな表情モデル ry >、アバター内部には脳のモデルデータが可視化 ry 活性化している箇所までわかります。 >この技術はAR や VRのゲーム ry
techon.nikkeibp.co.jp/atcl/feature/15/092800138/00003/?P=3 > サルで麻酔が効いているときと効いていないときで、意識のコアがどこにあるかを計算 ry > 。 意識のコアとは、情報が一番統合された状態にある部分で、「コンプレックス」と呼んでいます。 > 統合情報理論では、コンプレックスの外にあることは意識に上らず、その中にあることだけが意識 ry > 。我々はたぶん世界で初めてサルの実験データを使って、コンプレックスを見出しました。 > ry 、IITを提唱したGiulio Tononi氏の研究室とも関係が深く、 ry > 。 Tononi氏の共同研究者だった大泉匡史は、現在は当社の社員で、関連する研究のリーダー
> ry 、一種のメタラーニング ry 、異なるデータセットの分類を実行する複数のタスクを、 >1つのニューラ ry (関連ブログ)。 ry い点や赤い点が、1つのデータではなく、 >特定のタスク向けのデータセットを表 ry (図9)。 ry 。(図:アラヤのブログ) > これらのデータセット ry 分類タスクを実行でき ry (図 10)。 >ry 、初めて見たデータでも、サポートベクトルマシンよりも効率良く分類 ry 、複数の分類タス ry 。 > ry 2種類のデータはそれぞれガウシアン(正規分布に従う確率変数)という制約
img.5ch.net/ico/nida.gif >>152>>155>>149-150 >306 オryー 2018/01/30(火) 18:22:08.57 ID:5pXonw7A > >>305 : >「 ry (HTM)」は、汎用人工知能の研究に関して名前が挙がることも多 ry >ホーキンス氏は、2008年に科学雑誌IEEE Spectrumのシンギュ ry 特集 ry 、以下のように発言
>157 オryー 2018/02/10(土) 14:47:35.43 ID:2v967hEt >OpenAI、文章の前後の脈絡 ry 語の意味を予測するWikipediaをベースにしたニューラ ry 「DeepType」 > shiropen.com/2018/02/09/32202 >ry Wikipediaの内部リンク ry 語ごとにエンティテ ry >。例えば、動物Jaguarの ry ージをJaguarという単語の1つの意味と ry > 各ページの下にあるカテゴリから、各エンティティが属するカテゴリのセット ry >、本システムに落とし込 ry Wikidata ry >。これらを基に、単語と文脈を関 ry ーニングデータを生成し、関連付けを予 ry 訓練
抽象 これまでの研究では、明示的データグラフ実行(EDGE)命令セットアーキテクチャ(ISA)が電力効率の良い性能スケーリングを可能 ry 、物理コアを論理プロセッサに動的に合成するために、EDGE ISAを使用するE2という新しい動的マルチコアプロセッサ ry 、EDGE ISAがアウトオブオーダーのベクトル実行をどのように備えているか
1. 前書き チップ設計者は、性能のために電力をトレードオフするために、動的電圧と周波数スケーリング(DVFS)に長く依存 ry 。しかし、 ry 最小スレッショルド電圧(Vmin)に近づくにつれて、電圧スケーリングはもはや機能しません。 電力と性能のトレードオフは、マイクロアーキテクチャまたはシステムソフトウェアのいずれかに委ねられます。 DVFSがほとんどないアーキテ ry 、設計者はシリコンリソースの使用方法を選択する必要があります。 HillとMarty [6]は、 ry 4つの方法 ry 。(1) 多くの小型、低性能、電力効率の高いコア、 (2) 大規模で電力効率の低い高性能コアはほとんどありませんが、 (3) 小コアと大コアの異種混在、 and (4) コアを結合または分割して所定のワークロードに適合させることができる動的アーキテクチャ。 ry 中でも、ry パフォーマンスとエネルギー効率の高い設計は、ダイナミックなアーキテクチャです。 Hill氏とMarty氏は、 ry 、そのようなアーキテクチャーの詳細は記述しなかった。 TFlex [9]は、 明示的データグラフ実行(EDGE)命令セットアーキテクチャ(ISA) ry 、電力効率が高く軽量のプロセッサコアをより大きくより強力なコアに組み合わせることによって、 大きなダイナミックレンジと性能を実証したアーキテ ry TFlexは、小さなエンベデッドプロセッサと同じ性能とエネルギー効率 ry 、またはシングルスレッドアプリケーションでアウトオブオーダーのスーパースカラの高性能を提供するように動的に構成可能です。 これらの有望な結果に動機づけられ、我々は現在、 ry EDGE ISAを使用するE2という新しい動的アーキテ ry [3]。 EDGEモデルは、プログラムをアトミックに実行する命令のブロックに分割します。 ブロックは、従来のISAで行われたようにレジスタを介して通信するのではなく、プロデューサ - コンシューマ命令間の関係を明示的に符号化する一連のデータフロー命令からなる。 これらの明示的な符号化は、各命令のオペランドをプライベート・リザベーション・ステーション(オペランド・バッファと呼ばれる)にルーティングするために使用されます。 レジスタおよびメモリは、あまり頻繁でないブロック間通信を処理するためにのみ使用 ry
img.5ch.net/ico/nida.gif 以前の動的アーキテクチャ[7,9]は、タスクとスレッドレベルの並列性を利用する能力を実証しましたが、データレベルの並列性を扱うには、データを独立したセットに分割し、スレッドレベルの並列性 ry ? このホワイトペーパーでは、 ry 、E2の予備ベクタユニット設計 ry 。 この論文では、スレッディングがなくてもデータレベルの並列処理を効率的に活用することに焦点を当て、E2 で準備されたベクタユニットの設計について説明します。 ? 以前のイン・オーダー・ ry 。 従来のイン・オーダー・ベクトル・マシンとは異なり、E2では、ベクトルとスカラーの両方のアウト・オブ・オーダー ry 。 E2命令セットと実行モデルは、幅広いコードにわたって効率的なベクトル化を可能にする3つの新しい機能 ry 。第1に、静的にプログラムされた問題ウィンドウをベクトルレーンにスライスすることにより、スケーラモードよりも低いエネルギーオーバーヘッドで高度に並行したアウトオブオーダーの混合スカラーおよびベクトル演算 ry ? ry 予約ステーション ry 、ワイドフェッチをメモリに、ベクトルロードとベクトル演算との間のコピーを制限する。 第2に、静的に割り当てられたリザベーションステーションは、発行ウィンドウをベクトルレジスタファイルとして扱うことを可能にし、メモリのワイドフェッチの限界まで活かせるコピーを、ベクトルロードとベクトル演算との間で行う。 第3に、E2のアトミックブロックベースモデルは、リザベーションステーションにマップされたベクトル(およびスカラー)命令ブロックのリフレッシュを可能にし、 最初のループ反復の後にフェッチまたはデコードエネルギーオーバヘッドなしで発行する反復ベクトル演算を可能にする。 ry 、これらの最適化は、幅広いコードにわたって多くのサイズのベクトルを見つけて実行することに関連するエネルギーを削減 ry
img.5ch.net/ico/nida.gif 図1: E2 ry ブロック図 ベクタモードでは、各コアは4つの独立したベクタレーンで構成され、それぞれが32命令ウィンドウ、2つの64ビットオペランドバッファ、整数および浮動小数点演算のALU、16レジスタ ry スカラーモードでは、レーン3および4のALUはパワーダウンされ、命令ウィンドウ、オペランドバッファおよびレジスタは他の2つのレーンで使用可
2. E2アーキテクチャ E2は、オンチップネットワークで接続された低電力、高性能、分散処理コアで構成されたタイル型アーキテ ry シンプルさ、スケーラビリティ、フォールトトレランス ry 。図1は、32コアを含むE2プロセッサの基本アーキテクチャと、1つの物理コアの内部構造のブロック図 ry 。 コアにはNレーンが含ま ry (このペーパーでは4つ選択します)。各レーンは64ビットALUと命令ウィンドウ、オペランドバッファ、レジスタファイルの1つのバンク ry ? 、およびファイングレインSIMD実行 ry 。 ALUは、整数および浮動小数点演算、および細粒度 SIMD 実行(サイクルごとに8つの8ビット、4つの16ビット、または2つの32ビット整数演算、または1サイクルあたり2つの単精度浮動小数点演算) ry 。ウィンドウをレーンに分割するこの革新により、ハードウェアの複雑さはほとんどなく高いベクトルスループット ry ? ry 制限します。 E2のEDGE ISAは、ブロックを実行サブシステムにマップするハードウェアを簡略化し、ブロックの実行が完了したことを検出するために、ブロックをいくつかの方法で制限 ( 定義 ) します。 ブロックは可変サイズであり、4から128の命令を含み、多くとも32のロードおよびストアを実行 ry 。ハードウェアは、プログラムをデータフロー命令のブロックに分割し、シーケンシャルメモリセマンティクス[12]を実行するためのロードおよびストア識別子を割り当てるために、コンパイラに依存しています。 ry 、コンパイラは、述語を使用して、有用な命令で満たされた大きなブロックを形成します。 コミットを単純化するために、アーキテクチャはコンパイラに依存して、すべてのブロックから単一の分岐が生成され、レジスタの書き込みと使用されるストア識別子のセットをエンコードします。
img.5ch.net/ico/nida.gif E2コアは、スカラーモードとベクトルモードの2つの実行モード ry ? ry 他の命令にオペランドを送信でき、 ry ALUのうち2つを除くすべての命令がオフ ry 。 スカラーモードでは、どの命令もブロック内の他の回路にオペランドを送信でき、電力を節約するためにALUのうち2つを除くすべてがオフになります。 ? ry 、すべてのN個のALUはオンになっていますが、命令は同じベクタレーンの命令にオペランドのみを送信できます。 ベクタモードでは、 N個全てのALUはオンになっていますが、回路は同じベクタレーンの回路にのみオペランドを送信できます。 モードは、ブロックヘッダのビットからブロックごとに決定されます。 これにより、各コアは、ブロックごとに異なるアプリケーションフェーズに迅速に適応 ry
構成時に、アーキテクチャは投機的命令ブロックを実行するために追加のコアを使用します。 ? 非推測ブロック非投機ブロックがコミットすると、 ry 。 非投機ブロックがコミットすると、コミット信号が出口分岐アドレスと共に論理プロセッサ内の他のすべてのコアに送信されます。 正しいパス上の投機的ブロックは実行を継続し、非取得パス上のブロックは押しつぶされる。 ry 詳細 ry 2.2.1 ry ? ry 、構成を変更するオーバーヘッドが、 ry 向上によって上回る ry 。 コア構成は、構成を変更するオーバーヘッドを、より効率的な構成のパフォーマンス向上が上回る場合にのみ実行されます。 合成は常にブロック境界で行われ、ランタイムシステムによって開始されます。 構成が有益なシナリオの数を増やすために、E2はコアを構成する2つの異なる方法を提供し、それぞれがオーバーヘッドと効率のトレードオフを提供します。 フルコンポジションは、論理コア内の物理コアの数を変更し、レジスタファイルとキャッシュのマッピングを変更します。 ダーティなキャッシュ・ラインは、遅延してメイン・メモリに書 ry 。論理レジスタとキャッシュの位置は、物理コア全体に均等に分散されます。 ? ry 、より大きな論理キャッシュ(すべての物理コアのキャッシュ容量の合計)につながります。 キャッシュラインは、単純なハッシュ関数を介してマッピングされ、より大きな論理キャッシュ(すべての物理コアのキャッシュ容量の合計)になります。
img.5ch.net/ico/nida.gif クイックコンポジションは、追加のコアを論理プロセッサに追加しますが、同じL1データキャッシュとレジスタのマッピングを保持し、ダーティキャッシュラインをメインメモリに書き出しません。 ? ry 、論理プロセッサは完全なコンポジションで可能なよりも小さなデータキャッシュになりますが、 ry 。 これにより、論理プロセッサのデータキャッシュはフルコンポジションで可能な大きさよりも小さくなりますが、作成した後もキャッシュに既に存在するデータへのアクセスが確実に行われます。 ? ry 、実行ユニットを追加すると有効ですが、キャッシュを再構成するオーバーヘッドがより大きい、より効率的なキャッシュ構成の節約よりも大きい場合に、短期間のアクティビティバーストに最も役立ちます。 クイックコンポジションは、実行ユニット追加が優位性を齎す短期間バーストアクティビティに最も役立ちますが、それはキャッシュを再構成するオーバーヘッドの節約が、キャッシュのより効率的な構成時を上回る場合にです。 ? ry 電力を節約するように電力を供給します。 分解は、論理プロセッサから物理コアを削除し、除去されたコアへの電力供給は電力を節約する形で行われます。 実行は残りの物理コアで継続されます。 分解するには、論理プロセッサから落とされる各キャッシュのダーティラインをフラッシュし、キャッシュマッピングを更新する必要があります。 ? ry が追い出されたときにのみ書き戻されます。 残りのコアのダーティー・キャッシュ・ラインは、キャッシュ・ラインが追出される時点でのみライトバックされます。
img.5ch.net/ico/nida.gif 2.2 投機 ? スペキュレーションは、シリアルワークロードで優れ ry 。 投機は、直列処理で優れたパフォーマンス ry ? ry 推測を積極 ry 。 E2は、 ry 投機を積極 ry ? ry 推測する。 結合述語分岐予測子[5]は、2つのレベルで投機する。 ? ry 予測します。 まず、ブロック間の推測のために各ブロックの分岐出口アドレスを投機的予測します。 第2に、述語値を予測することによって、ブロック内の制御フロー経路を予測する。 2.2.1 ブロック間の推測 分岐出口アドレスを予測することにより、現在のブロックが完了する前に命令ブロックをフェッチして実行 ry ? ry 、非推論としてマークされ、 ry 。 最も古い命令ブロックは、非投機としてマークされ、分岐出口アドレスを予測する。 このアドレスはフェッチされ、命令ウィンドウ内に使用可能なスペースがある場合、論理プロセッサ内の別の物理コアまたは同じ物理コア上で実行を開始します。 実行された分岐アドレスは、ブロックが完了する前に解決されることがよくあります。 ? ry 、取られたアドレスを ry 。 この場合、非投機ブロックは、得られたアドレスを論理プロセッサ内の他のコアに通知する。 最も古い命令ブロックは、非投機的ブロックになる。 ? 正しく推測 ry 。 正しく投機されなかったブロックは押しつぶされます。 ? ry 取られた分岐信号 ry 。 この得られた分岐信号は、コミット信号とは異なる。 ? 取られたブランチは、 ry 推測を続行し、 ry 。 得られたブランチは、次のブロックが投機を続行し、新しい命令ブロックのフェッチ ry 可能にする。 しかし、レジスタ値とメモリ値は、コミット信号の後まで有効ではありません。
img.5ch.net/ico/nida.gif ? ブロック内の推測 2.2.2 ブロック内での投機 ry 3つのタイプ ry ? 述語推測は、 ry 。 述語投機は、述語の値を予測するために結合述語分岐予測子を使用する。 ? 投機的ブロックが投機的ブロックによって変更される可能性のあるL1キャッシュから ry 。 軽投機的なブロックが投機的ブロックによって変更される可能性のあるL1キャッシュから値をロードするとき、投機的ブロック内でメモリ投機が発生する。 ? ry ・スペキュレーションが発生 ry 。 ロード・ストア・キュー(LSQ)によって、ロード・ストア識別子の低いストアが実行される前にロード ry 、ロード投機が発生します。 ? ry 、誤った推測は、 ry 。 3つすべての場合において、誤った投機は、命令ブロック全体の再実行を必要とする。 これは比較的軽量であり、すべてのオペランドバッファ内の有効ビットを無効にし、ゼロオペランド命令を再ロードするだけでよい。 ? 2.3 ry と頻度 2.3 面積と周波数 ChipEstimate InCyte [4]と業界平均の65nmプ ry 、E2プロセッサのエリアモデルを開発 ry 。設計パラメータとコンポーネント領域を表1 ry 。 >>194 各E2コアにはL1キャッシュを含む3.87 mm2 ry ? InCyteのバージョンでは、頻度の見積り ry 。 InCyteの我々のバージョンでは、周波数見積りは利用できません。 しかし、マイクロアーキテクチャは、大規模でグローバルな構造を持たず、チップ全体にわたる分散制御 ry 。このため、E2は65nmで600?1000MHzの標準ARMマルチコア ry と同等の周波数 ry 期待 ry [2]。
3. 実行パイプライン E2の実行は、命令フェッチ、実行、コミットの3つの主要段階 ry 、最初にスカラーモードで動作するときの各ステージの動作について説明し、次 ry ベクトルモードの違い ry 3.1 フェッチ E2と従来のアーキテクチャとの主な違いの1つは、E2が単一命令を連続的にフェッチするのではなく、一度に多くの命令をフェッ ry 。
? 命令最大128命令のブロック ry 一度にフェッチ ry 。 総合計128以内の命令を持つブロックがL1命令キャッシュから一度にフェッチされ、命令ウィンドウにロードされます。 命令は、ブロックコミット(または、ry 3.3.1 ry 、おそらく長くなる)まで、ウィンドウに常駐しています。 物理コアは、同時に1つの128命令ブロック、2つの64命令ブロック、または4つの32命令ブロックをウィンドウ内でサポートします。 命令ブロックは、ブロック内の命令数、特殊ブロック動作用のフラグ、およびブロックによって書き込まれたグローバルレジスタを符号化するビットベクトルおよび使用されるストア識別子を含む128ビットブロックヘッダから始まる。 命令は32ビット幅であり、一般に少なくとも4つのフィールドを含む:
? ry 数とともに実行する命令。 * オペコード[9ビット]: 受け取る入力オペランドの数付きで実行する命令。 * 述語[2ビット]: 命令が述語ビットで待機する必要があるかどうか、およびそのビットがtrueまたはfalseの場合に実行するか ry * ターゲット1 [9ビット]: 命令の結果のコンシューマの識別子。コンシューマがレジスタの場合、このフィールドはレジスタ番号です。 コンシューマが別の命令である場合、このフィールドにはコンシューマの命令番号(オペランドバッファへのインデックス ry )と、結果がオペランド0、オペランド1、または述語として使用されるかどうかが含まれます。 ? ry 即時[9ビット]: ry 即時命令 ry 。 * ターゲット2 /即値[9ビット]: 2番目の命令ターゲット、または即値命令の定数値のいずれか。
命令ウィンドウは4つの等しいバンクに分割され、各バンクは1サイクルにつき2つの命令をロードする。 定数生成命令などの入力オペランドを必要としない命令は、命令番号をレディキューにプッシュ ry 直ちに実行 ry スケジューリング ry 。
img.5ch.net/ico/nida.gif 3.2 実行する ry 、レディキュー ry 番号を読 ry 開始 ry 。オペランド、オペコード、および命令ターゲットフィールドは、ALU、レジスタファイル(読み出し命令用)、またはロードストアキュー( ロー ry ア用)のいずれかに転送されます。 ? 、結果が(もしあれば)適切 ターゲットフィールドは、結果(もしあれば)を適切なオペランドバッファ(または書き込みの場合はレジスタファイル)に戻すために使用されます。 ? 結果がオペランドバッファに転送されると、 ry 。 結果がオペランドバッファに戻されると、ターゲットとなる命令がチェックされ、どの入力が必要であり、どのオペランドが既に到着しているかがわかります。 命令のすべてのオペランドが到着した場合、命令番号がレディキューに ry 。ブロックが完了するまで、 ry 継続 ry 。 他のEDGEやデータ・フロー・アーキテクチャーと同様に、メモリー操作が命令型言語 ry 順序 ry 確実に従うように、ロードとストアに特別な処理が必要です。 ? ry 方法を使用します。 ry 。 E2は[10]で説明した方法を使用し、コンパイラはシーケンシャルメモリセマンティクスを実施するためにマイクロアーキテクチャが使用するプログラム順序を示すシーケンス識別子で各メモリ操作をエンコードします。 ? プレディケートのためにブロック内のすべての命令が ry 。 予測のためにブロック内のすべての命令が必ず実行されるわけではないため、 ry ブロックの完了を検出する必要 ry ? ry (1)唯一の分岐 ry 。 ブロックは、(1)一つ ( 又唯一 ) の分岐が実行されたとき、および(2)外部状態を変更するすべての命令(レジスタ書き込みおよびストア)が実行されたときに完了したとみなされる。 ? ry criteria(2)が満たされた ry 。 コンパイラはレジスタの書き込みとストア識別子を命令ブロックヘッダにエンコードし、マイクロアーキテクチャが上記(2)の判定が満たされたときを識別できるようにします。
img.5ch.net/ico/nida.gif 3.3 コミット 実行中、命令はアーキテクチャ状態を変更しません。 代わりに、すべての変更がバッファリングされ、ブロック完了時に一緒にコミットされます。 ? ry 最も低いシーケンス識別子 ry 。 コアがコミット・フェーズに入ると、レジスタ・ファイルはすべてのレジスタ書き込みで更新され、ロード・ストア・キュー内のすべてのストアは、最小のシーケンス識別子で始まるL1キャッシュに送信されます。 すべてのレジスタ書き込みおよびストアがコミットされると、コアは同じ論理プロセッサ内の他のすべてのコアにコミット信号を送信します。 3.3.1 リフレッシュ リフレッシュと呼ばれる重要なコミット最適化の1つは、命令ブロックが自身に分岐するときに発生します。 命令をL1命令キャッシュから再びロードするのではなく、命令をそのまま残し、オペランド・バッファおよびロード・ストア・キュー内の有効ビットのみをクリアする。 これにより、命令フェッチフェーズを完全にバイパス ry ? ry 実行されるたびに再生成されないようにする ry 。 定数を生成する命令は、オペランドバッファの値をリフレッシュ後も有効なままにしておき、命令ブロックが実行されるたびに再生成される事がないようにすることもできます。
img.5ch.net/ico/nida.gif 3.4 ベクトルモード ry 、各プロセッサコアをN個(このペーパーでは4つ)の独立したベクトルレーンに分割します。 ry 、命令は同じベクタ・レーン内の他の命令のみをターゲットにすることができ、オペランド・バッファとALU間にフル・クロス・バーを必要としません。 各レーンは、32エントリ命令ウィンドウ、2つの64ビットオペランドバッファ、16レジスタ、および1つのALUで構成 ry 。 E2は、64ビット、128ビット(256ビットにパディングされた)、および256ビット幅のベクトルに対するベクトル演算 ry 。各ALUは、8つの8ビット、4つの16ビット、または2つの32ビット・ベクタ・オペレーション ry ? ry 1コアあたり最大32 ry 。 4つのALUにより、E2は1コア1サイクルあたり最大32のベクトル演算 ry 。 64ビット・ベクタ・オペレーションは単一のALUを使用し、128ビット・オペレーションと256ビット・ベクタ・オペレーションは4つのALUすべて ry 。表2に、各ベクトル長とデータ要素サイズでサポートされる並列ベクトル演算の数 ry 。 >>199 ベクトル命令を含む命令ブロックは、各ベクトルレーンの命令ウィンドウのサイズである32命令に制限される。 レーン1で発行されるベクトル命令は、他の3つのレーンで自動的に発行され、スカラー命令は常にレーン1に割り当てられます。 ? ry 形成するために別名が付けられます。 ベクタモードでは、64個の64ビット物理レジスタ(R0R63)に16個の256ビットベクタレジスタ(V0V15)を形成するためにエイリアスされます。 物理レジスタファイルを4つのバンクに分割して、ベクトルの単一サイクルアクセス ry ? 3.4.ベクトル ry 3.4.1 ベクトルモードでのメモリアクセス E2コアは、256ビットのチャンクで動作し、中小長のベクトルでデータレベルの並列処理を効率 ry ? より大きなベクトルでの操作は、効率的なリフレッシュモードを使用して命令フェッチと定数の生成(セクション3.3)をバイパスするループ内の複数の命令ブロックを使用して実行されます。 ループ内の複数の命令ブロックでのより大きなベクトル操作に於ては、効率的なリフレッシュモードを使用する事で命令フェッチと定数の生成がバイパスされます(セクション3.3)。
複数の命令ブロック間で大きなベクトルを分割すると、同じベクトルの隣接するチャンクのロード間に遅延が発生する可能性 ry 。 ry 。 この遅延を軽減するために、E2はメモリインタフェースコントローラ(MIC)と呼ばれる特殊なユニット ry 。 MICはL1データキャッシュの制御を引き継ぎ、キャッシュの一部をプリフェッチストリームバッファに変更します[8,11]。 ストリームバッファは、次のベクトルロードのアドレスを予測し、そのデータをキャッシュに早期に持ち込む。 これにより、後続の命令ブロックのベクタロードが常にL1キャッシュにヒット ry ? ry 従来のキャッシュとして動作 ry 。 ベクトルおよびスカラー演算は命令ブロックで混合されるので、キャッシュの一部は依然として従来型キャッシュとして動作する必要があります。 ? ry 半減させますか? それらの方法をスト??リームバッファ用のメモリに変換する。 キャッシュのサイズを半分にするのではなく、キャッシュのセットアソシアティビティを半減させますか? つまりそれらのウェイをストリームバッファ用のメモリに転換する。 ベクタロード時に、キャッシュはストリームバッファをチェックします。 スカラのロードとストアでは、チェックするセットの数は少なくなりますが、キャッシュは同じ方法でキャッシュをチェックします。 ? ry 、ブロックコミットまでストリームバッファにバッファされ、その時点 ry 。 ベクタストア命令は、ストリームバッファにバッファされ、ブロックコミット時点でメインメモリに直接書き込まれます。
img.5ch.net/ico/nida.gif 4. 例:RGBからYへの変換 このセクションでは、E2でプログラムをベクトル化 ry 例 ry 。 図2は、カラー画像をグレースケールに変換するために一般的に使用されるRGBからYへの輝度変換のためのCコードおよび対応するベクトル化されたアセンブリを示す。
img.5ch.net/ico/nida.gif ? ry 三重線を有する。 画像の各ピクセルは、赤、緑、および青の色成分に対応する三重要素を有する。 輝度(Y)は、各RGB値に定数を掛け、3つの結果を合計 ry ? ry 、並行して並列化することができます。 このプログラムは、各変換が独立しているため、並行して複数の変換を実行するために、並列化することができます。 4.1 Cソース ? ry 、これらのベクトルへのポインタ、 ry Yへのポインタ、変換するベクトルの数 ry 。 各RGBコンポーネントはベクトルで表され、これらの三つのベクトルへのポインタ、事前に割り当てられた結果ベクトルYへのポインタ、そして変換するベクトルの数が引数として関数に渡されます(行4-5)。 >>203 変換の定数もベクトルに格納されます(7-12行目)。 各ベクトルは256ビット幅で、個々のデータ要素は32ビット単精度浮動小数点型なので64ビットにパディングされます。 変換は単純なforループを使用して行われます(1416行目)。 ? この例 ry 、ループを展開してブロックを埋めるわけではありません。 例を単純化するために、ループ展開でブロックを埋める事を避けます。 4.2 アセンブリ アセンブリリストは、1851 ry 。 >>203-204>>203>>204 ? ry 、新しいブロックはすべてのラベル(ライン18)で開始されます。 命令はコンパイラ(この例では1つのブロック)によってブロックにグループ化され、全てのラベルは新しいブロックの先頭を意味します(ライン18)。 ry 、ブロックをアトミックにフェッチ、実行、およびコミットします。 慣習的には、スカラーレジスタを表すためにRn、ベクトルレジスタを表すVn、テンポラリオペランドを表すTn ry ? ry 、すべてのブロックで参照できるグローバル状態の一部です。 スカラーレジスタとベクタレジスタは、全てのブロックでグローバルステートとして参照できる構成要素です。 ? ただし、一時的なオペランドは、 ry 表示されます。 但し、テンポラリオペランドは、定義されたブロック内でのみ参照可能です。 ? ry 19行目???卸行目 ry 。 グローバルレジスタファイルから読み取ることができる命令は、レジスタREAD命令(19行目 - 27行目)のみです。 ただし、ほとんどの命令はグローバルレジスタファイルに書き込むことができます。
img.5ch.net/ico/nida.gif サイクル 1 2 3 4 5 6 7 8 9 1011121314151617 FETCH IF IF IF IF READ R R R R R READ R R R R MEM L L L S EX A A A M M M M M M M M M A A B EX M A T M M M M M M M M M A A A EX M M M M M M M M M A A EX M M M M M M M M M A A
img.5ch.net/ico/nida.gif ? 4.3 指導スケジュール 4.3 命令スケジュール 図3は、図2の例の1つの可能なスケジュー ry 。 >>207 我々は、3サイクルの32ビット浮動小数点乗算を仮定し、すべてのロードがL1キャッシュでヒットし、3サイクルが必要となる。 ry 1サイクルにつき8命令をフェッチ ry 、27命令ブロック ry 4サイクル ry 。サイクル1では、8つのレジスタ読み出し命令がフェッチされ、これらの命令は依存性がないので、次のサイクルですべて実行 ry ? すべてのグローバル・レジスタを読み出すために5サイクルを必要とする1サイクルにつき2回のレジスタ・リードが実行できます。 1サイクルに付き 2 つのレジスタの読出しが実行でき 5 サイクルですべてのグローバル・レジスタを読出せます。 サイクル2では、レジスタR4(20行目)とR8(24行目)が読み出され、ベクタロード(30行目)、即値乗算(40行目)、および即値(48行目)命令に送られます。 >>203-204>>203>>204 これらの命令はそれぞれ1つのオペランドで待機しているため、すべて準備ができてサイクル3で実行を開始します。 サイクル17でブロックがコミットする準備ができるまで、ry 継続
5. 結論 ? ry 、E2アーキテクチャについて説明しましたか? 高性能な電力を効率的に達成するために設計されたExplicit Data Graph Execution(EDGE)ISAを利用した新しい動的マルチコア。 この論文では、E2アーキテクチャ -- 演算性能が高く電力を効率的に達成するために設計されたExplicit Data Graph Execution(EDGE)ISAを利用した新しい動的マルチコアに付いて説明しました。 EDGEアーキテクチャとして、E2はデータフローの実行と攻撃的な投機によって命令レベルの並列 ry 、ベクトルとSIMDのサポートによって、データ・レベルの並列 ry 説明 ry 。このベクトルのサポートにはスカラー命令が散在しているため、E2は従来のベクトルプロセッサよりも柔軟性があり、従来のスカラーアーキテクチャよりも優れています。 ? ry 、SystemCとMicrosoft Phoenixソフトウェアの最適化と分析フレームワークで新しいコンパイラバックエンドを使用してE2用の ry 。
img.5ch.net/ico/nida.gif 我々は、最適化と分析のフレームワークであるMicrosoft Phoenixソフトウェア付きの新しいコンパイラバックエンドと SystemC とを使用して E2用のアーキテクチャシミュレータを開発しました[1]。 ? 、産業強度コンパイラ ry 。 ry 、我々の産業強度コンパイラと組み合わせることで、アーキテクチャの詳細な調査と評価を実行できるサイクル精度の高いFPGA実装を開発中です。 ? ry 先行しています。 多くの課題が待受けています。 アクセラレータとして説得するためには、GPUや専用ベクトルプロセッサなどの特殊なアクセラレータよりも優れた性能、電力効率、プログラマビリティ ry 。 E2は汎用プロセッサとしても優れている可能性 ry 。その場合、新しいISAへの移行を正当化するために、現在の静的マルチコア・アーキテクチャに比べて十分な電力/性能 ry 。 E2のパフォーマンスと電力効率は、コアを動的に構成および分解する能力を基盤としているため、動的構成を管理するための正しいポリシーとメカニズムには慎重な検討 ry ? ry プログラマーが基盤となるハードウェアについて推論 ry 。 理想的には、コンポジションに関するすべての決定をランタイムシス ry 、プログラマがこのハードウェアの根本に付いて推論することを完全に免れます。 最後に、組み込みデバイスからデータセンターまで、E2のパワーとパフォーマンスのトレードオフの能力が役立つさまざまなアプリケーションドメインがあります。 今後数か月 ry 電力性能 ry 調査
img.5ch.net/ico/nida.gif ? [8] ry 小さな完全連想キャッシュ ry 。 [8] NP Jouppi。 小さなフルアソシエイティブキャッシュとプリフェッチ・バッファを追加することで、ダイレクト・マップ・キャッシュのパフォーマンスを向上させます。 SIGARCH Computer Architecture News、18(3a)、1990を参照されたい。 ? [9] ry マイクロシンポジウム ry 。 [9] C.Kim、S.Sethumadhavan、D.Gulati、D.Burger、M.Govindan、N.Ranganathan、およびS.Keckler。 構成可能な軽量プロセッサ。.第40回IEEE / ACMマイクロアーキテクチャ国際シンポジウム議事録、2007年。 [10] S. Sethumadhavan、F. Roesner、JS Emer、D. Burger、およびSW Keckler。 遅延バインディング:順序なしロード・ストア・キューを使用可能にします。 2007.第34回国際コンピュータシンポジウム講演予稿集、347357頁、ニューヨーク、 NY 、米国、2007年。 ACM。 ? [11] ry 国際シンポジウム ry 。 [11] T.シャーウッド、S。セア、B.カルダー。 予測子指示ストリームバッファ。 In Proceedings of the 33rd Annual ACM/IEEE International Symposium on Microarchitecture, 2000.第33回ACM / IEEE国際マイクロアーキテクチャシンポジウム講演予稿集、2000年。 [12] A.スミス。 明示的なデータグラフのコンパイル。 博士論文、テキサス大学、オースティン、2009年。