X



(情報科学)技術的特異点と科学技術等 2 (ナノテク)©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001オーバーテクナナシー 転載ダメ©2ch.net垢版2017/03/19(日) 20:22:23.35ID:cRK6Y+kv
※ このスレは、本家スレから分かれた分家スレです。科学・技術系で『専門的な』話題を特に扱います。

スレ成立のきっかけ
・技術的特異点の関わる分野は非常に幅広く、浅い部分から深い部分までレベルも様々で、多様な人が集まっている
・上記を前提として、科学・技術系で専門的な内容に集中しやすいように、ノイズ(特に不毛な論争)を減らしたい
・これにより、興味がある者同士の意思疎通困難性、過去ログ参照の困難性などが解消される

ただし性質上、本家との区分は厳密には困難です ( むしろ同じ内容が扱われても構いません ) 。
本家は雑談寄り、ここではより専門色を強く、とご理解下さい。

■現在の本家スレと前スレ
(強いAI)技術的特異点/シンギュラリティ63
http://rio2016.2ch.net/test/read.cgi/future/1489471775/
(情報科学)技術的特異点と科学技術等 1 (ナノテク)
http://rio2016.2ch.net/test/read.cgi/future/1475986330/

■関連スレ等
関連書籍・リンク・テンプレ集[必見]
http://singularity-2ch.memo.wiki/
(AI)技術的特異点と経済社会等 9 (BI)
http://rio2016.2ch.net/test/read.cgi/future/1484578214/
人工知能
http://rio2016.2ch.net/test/read.cgi/future/1286353655/
人工知能で自我・魂が作れるか
http://rio2016.2ch.net/test/read.cgi/future/1476229483/
不老不死(不老長寿)を目指すスレ Part32
http://rio2016.2ch.net/test/read.cgi/future/1485781591/
検索
http://google.jp/?q=site:2ch.net/test/read.cgi/future/+tokuiten+cyouju
http://google.jp/search?q=singularity+saron+OR+sinpojiumu&;num=20
0184yamaguti垢版2018/07/27(金) 01:29:26.59ID:pBBIx/eO?2BP(0)

>>46 >>173 >>152-183
Google 翻訳

これは、ファイル http://microsoft.com/en-us/research/wp-content/uploads/2016/02/e2-heart2010.pdf
の html版です。 Google


Page 1

E2ダイナミックマルチコアアーキテクチャにおける動的ベクトル化
2010 HEART 2010の議事に出席する

アンドリュー・パトナム
マイクロソフトリサーチ
anputnamATmicrosoft。

アーロン・スミス
マイクロソフトリサーチ
aasmithATmicrosoft。

ダグ・バーガー
マイクロソフトリサーチ
dburgerATmicrosoft。

抽象
これまでの研究では、明示的データグラフ実行(EDGE)命令セットアーキテクチャ(ISA)が電力効率の良い性能スケーリングを可能 ry
、物理コアを論理プロセッサに動的に合成するために、EDGE ISAを使用するE2という新しい動的マルチコアプロセッサ ry
、EDGE ISAがアウトオブオーダーのベクトル実行をどのように備えているか

カテゴリと主題記述子
C.1.2 [コンピュータシステムの組織]: 複数のデータストリームアーキテクチャ -- 単一命令ストリーム、複数データストリームプロセッサ(SIMD)、アレイプロセッサおよびベクトルプロセッサ、
C.1.3 [コンピュータシステムの組織]: その他のアーキテクチャスタイル -- 適応可能なアーキテクチャ、データフローアーキテ ry
0185>>184垢版2018/07/27(金) 01:37:44.56ID:pBBIx/eO?2BP(0)

一般条件 デザイン、パフォーマンス

キーワード 明示的データグラフ実行(EDGE)

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
0186>>185垢版2018/07/27(金) 01:40:48.64ID:pBBIx/eO?2BP(0)

 以前の動的アーキテクチャ[7,9]は、タスクとスレッドレベルの並列性を利用する能力を実証しましたが、データレベルの並列性を扱うには、データを独立したセットに分割し、スレッドレベルの並列性 ry
? このホワイトペーパーでは、 ry 、E2の予備ベクタユニット設計 ry 。
この論文では、スレッディングがなくてもデータレベルの並列処理を効率的に活用することに焦点を当て、E2 で準備されたベクタユニットの設計について説明します。
? 以前のイン・オーダー・ ry 。
従来のイン・オーダー・ベクトル・マシンとは異なり、E2では、ベクトルとスカラーの両方のアウト・オブ・オーダー ry
。 E2命令セットと実行モデルは、幅広いコードにわたって効率的なベクトル化を可能にする3つの新しい機能 ry
。第1に、静的にプログラムされた問題ウィンドウをベクトルレーンにスライスすることにより、スケーラモードよりも低いエネルギーオーバーヘッドで高度に並行したアウトオブオーダーの混合スカラーおよびベクトル演算 ry
? ry 予約ステーション ry 、ワイドフェッチをメモリに、ベクトルロードとベクトル演算との間のコピーを制限する。
第2に、静的に割り当てられたリザベーションステーションは、発行ウィンドウをベクトルレジスタファイルとして扱うことを可能にし、メモリのワイドフェッチの限界まで活かせるコピーを、ベクトルロードとベクトル演算との間で行う。
第3に、E2のアトミックブロックベースモデルは、リザベーションステーションにマップされたベクトル(およびスカラー)命令ブロックのリフレッシュを可能にし、
最初のループ反復の後にフェッチまたはデコードエネルギーオーバヘッドなしで発行する反復ベクトル演算を可能にする。
ry 、これらの最適化は、幅広いコードにわたって多くのサイズのベクトルを見つけて実行することに関連するエネルギーを削減 ry
0187>>186垢版2018/07/27(金) 01:43:16.63ID:pBBIx/eO?2BP(0)

Page 2

ALU
命令ウィンドウ 32×54b
ALU
命令ウィンドウ 32×54b
ALU
命令ウィンドウ 32 x 54b
ALU
命令ウィンドウ 32×54b
L1命令キャッシュ32 KB
L1データキャッシュ32 KB
コントロール
分岐予測器
レジスタ[0-15] 16 x 64b
レジスタ[16-31] 16 x 64b
レジスタ[32-47] 16 x 64b
レジスタ[48-63] 16 x 64b
メモリインタフェースコントローラ
ロード/ストア・キュー
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
オペランド・バッファ 32×64b
レーン1 レーン2 レーン3 レーン4
コア コア コア コア コア コア コア コア   コア コア コア コア コア コア コア コア   L2 L2 L2 L2
コア コア コア コア コア コア コア コア   コア コア コア コア コア コア コア コア   L2 L2 L2 L2
0188>>187垢版2018/07/27(金) 01:45:20.36ID:pBBIx/eO?2BP(0)

図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 、コンパイラは、述語を使用して、有用な命令で満たされた大きなブロックを形成します。
コミットを単純化するために、アーキテクチャはコンパイラに依存して、すべてのブロックから単一の分岐が生成され、レジスタの書き込みと使用されるストア識別子のセットをエンコードします。
0189>>188垢版2018/07/27(金) 01:47:20.55ID:pBBIx/eO?2BP(0)

 E2コアは、スカラーモードとベクトルモードの2つの実行モード ry
? ry 他の命令にオペランドを送信でき、 ry ALUのうち2つを除くすべての命令がオフ ry 。
スカラーモードでは、どの命令もブロック内の他の回路にオペランドを送信でき、電力を節約するためにALUのうち2つを除くすべてがオフになります。
? ry 、すべてのN個のALUはオンになっていますが、命令は同じベクタレーンの命令にオペランドのみを送信できます。
ベクタモードでは、 N個全てのALUはオンになっていますが、回路は同じベクタレーンの回路にのみオペランドを送信できます。
モードは、ブロックヘッダのビットからブロックごとに決定されます。
これにより、各コアは、ブロックごとに異なるアプリケーションフェーズに迅速に適応 ry
0190>>189垢版2018/07/27(金) 01:49:59.06ID:pBBIx/eO?2BP(0)

2.1 コアの作成
?   ry 、コアを構成して分解することによって、 ry 。
 E2と他のプロセッサを区別する重要な特性の1つは、コアの構成と分解によって、特定の作業負荷に対してアーキテクチャを動的に適応させることです。
設計時にコアのサイズと数を固定するのではなく、実行時に1つ以上の物理コアを結合して、より大きな、より強力な論理コアを形成 ry
? 、ワークロードのシリアル部分 ry 。
たとえば、すべての物理コアを積極的なスーパースカラのように機能する1つの大きな論理プロセッサにまとめることで、処理内容の直列部分を処理できます。
また、十分なスレッドレベルの並列 ry 、同じ大きな論理プロセッサを分割して、各物理プロセッサが独立して動作し、独立したスレッドから命令ブロックを ry
? コアをまとめてコアを合成し、分割するコアを分解コアと呼びます。
コアをマージしまとめる事をコア合成 ( 融合 構成 形成 ) と、コアを分割する事をコア分解 ( 分割 分離 ) と呼びます。
 論理コアは、物理コア間のレジスタおよびメモリへのアクセスをインターリーブして、論理コアに、合成されたすべての物理コアの結合された計算リソースを与えます。
たとえば、2つの物理コアで構成される論理コアは、アドレスの追加ビットを使用して2つの物理キャッシュ間で選択し、L1キャッシュ容量を効果的に2倍にします。
? 、追加のレジスタファイル容量に電力が供給され、 ry 。
レジスタファイルも同様にインターリーブされますが、64個のレジスタだけがISAによってサポートされているため、追加のレジスタファイル分の電源は遮断され、消費電力が削減されます。
 各命令ブロックは、単一の物理プロセッサにマッピング ry 。
0191>>190垢版2018/07/27(金) 02:04:38.79ID:pBBIx/eO?2BP(0)

Page 3

構成時に、アーキテクチャは投機的命令ブロックを実行するために追加のコアを使用します。
? 非推測ブロック非投機ブロックがコミットすると、 ry 。
非投機ブロックがコミットすると、コミット信号が出口分岐アドレスと共に論理プロセッサ内の他のすべてのコアに送信されます。
正しいパス上の投機的ブロックは実行を継続し、非取得パス上のブロックは押しつぶされる。
ry 詳細 ry 2.2.1 ry
?  ry 、構成を変更するオーバーヘッドが、 ry 向上によって上回る ry 。
 コア構成は、構成を変更するオーバーヘッドを、より効率的な構成のパフォーマンス向上が上回る場合にのみ実行されます。
合成は常にブロック境界で行われ、ランタイムシステムによって開始されます。
構成が有益なシナリオの数を増やすために、E2はコアを構成する2つの異なる方法を提供し、それぞれがオーバーヘッドと効率のトレードオフを提供します。
 フルコンポジションは、論理コア内の物理コアの数を変更し、レジスタファイルとキャッシュのマッピングを変更します。
ダーティなキャッシュ・ラインは、遅延してメイン・メモリに書 ry
。論理レジスタとキャッシュの位置は、物理コア全体に均等に分散されます。
? ry 、より大きな論理キャッシュ(すべての物理コアのキャッシュ容量の合計)につながります。
キャッシュラインは、単純なハッシュ関数を介してマッピングされ、より大きな論理キャッシュ(すべての物理コアのキャッシュ容量の合計)になります。
0192>>191垢版2018/07/27(金) 02:05:52.16ID:pBBIx/eO?2BP(0)

 クイックコンポジションは、追加のコアを論理プロセッサに追加しますが、同じL1データキャッシュとレジスタのマッピングを保持し、ダーティキャッシュラインをメインメモリに書き出しません。
? ry 、論理プロセッサは完全なコンポジションで可能なよりも小さなデータキャッシュになりますが、 ry 。
これにより、論理プロセッサのデータキャッシュはフルコンポジションで可能な大きさよりも小さくなりますが、作成した後もキャッシュに既に存在するデータへのアクセスが確実に行われます。
? ry 、実行ユニットを追加すると有効ですが、キャッシュを再構成するオーバーヘッドがより大きい、より効率的なキャッシュ構成の節約よりも大きい場合に、短期間のアクティビティバーストに最も役立ちます。
クイックコンポジションは、実行ユニット追加が優位性を齎す短期間バーストアクティビティに最も役立ちますが、それはキャッシュを再構成するオーバーヘッドの節約が、キャッシュのより効率的な構成時を上回る場合にです。
?  ry 電力を節約するように電力を供給します。
 分解は、論理プロセッサから物理コアを削除し、除去されたコアへの電力供給は電力を節約する形で行われます。
実行は残りの物理コアで継続されます。
分解するには、論理プロセッサから落とされる各キャッシュのダーティラインをフラッシュし、キャッシュマッピングを更新する必要があります。
? ry が追い出されたときにのみ書き戻されます。
残りのコアのダーティー・キャッシュ・ラインは、キャッシュ・ラインが追出される時点でのみライトバックされます。
0193>>192垢版2018/07/27(金) 02:08:34.87ID:pBBIx/eO?2BP(0)

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 可能にする。
しかし、レジスタ値とメモリ値は、コミット信号の後まで有効ではありません。
0194>>193垢版2018/07/27(金) 02:09:28.17ID:pBBIx/eO?2BP(0)

コンポーネント    パラメータ    領域(mm2)  %領域

命令ウィンドウ    32x54b      0.08    2%
分岐予測器          0.12    3%
オペランドバッファ  32x64b      0.19    5%
ALU      4 SIMD、Int + FP  0.77    20%
レジスタファイル  64 x 64b    0.08    2%
ロード・ストア・キュー        0.19    5%
L1 Iキャッシュ    32kB      1.08    28%
L1 Dキャッシュ    32kB      1.08    28%
コントロール          0.19    5%

コア            3.87    100%

L2キャッシュ    4MB      100

表1: E2コアのコンポーネント、設計パラメータ、および領域
0195>>194垢版2018/07/27(金) 02:16:45.99ID:pBBIx/eO?2BP(0)

? ブロック内の推測
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 。
0196>>195垢版2018/07/27(金) 02:22:41.77ID:pBBIx/eO?2BP(0)

Page 4

? 命令最大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 。
0197>>196垢版2018/07/27(金) 02:29:09.72ID:pBBIx/eO?2BP(0)

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)の判定が満たされたときを識別できるようにします。
0198>>197垢版2018/07/27(金) 02:33:17.48ID:pBBIx/eO?2BP(0)

3.3 コミット
 実行中、命令はアーキテクチャ状態を変更しません。
代わりに、すべての変更がバッファリングされ、ブロック完了時に一緒にコミットされます。
? ry 最も低いシーケンス識別子 ry 。
コアがコミット・フェーズに入ると、レジスタ・ファイルはすべてのレジスタ書き込みで更新され、ロード・ストア・キュー内のすべてのストアは、最小のシーケンス識別子で始まるL1キャッシュに送信されます。
すべてのレジスタ書き込みおよびストアがコミットされると、コアは同じ論理プロセッサ内の他のすべてのコアにコミット信号を送信します。
3.3.1 リフレッシュ
 リフレッシュと呼ばれる重要なコミット最適化の1つは、命令ブロックが自身に分岐するときに発生します。
命令をL1命令キャッシュから再びロードするのではなく、命令をそのまま残し、オペランド・バッファおよびロード・ストア・キュー内の有効ビットのみをクリアする。
これにより、命令フェッチフェーズを完全にバイパス ry
? ry 実行されるたびに再生成されないようにする ry 。
定数を生成する命令は、オペランドバッファの値をリフレッシュ後も有効なままにしておき、命令ブロックが実行されるたびに再生成される事がないようにすることもできます。
0199>>198垢版2018/07/27(金) 02:34:47.64ID:pBBIx/eO?2BP(0)

要素サイズ  最小値(1 ALU)    最大値(4 ALU)

8ビット  8        32
16ビット  4      16
32ビット  2(1つのシングルfp)  8(4つのシングルfp)
64ビット  1 

表2: サポートされているベクトル演算
0200>>199垢版2018/07/27(金) 02:39:37.38ID:pBBIx/eO?2BP(0)

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)。
0201>>200垢版2018/07/27(金) 02:41:44.47ID:pBBIx/eO?2BP(0)

Page 5

 複数の命令ブロック間で大きなベクトルを分割すると、同じベクトルの隣接するチャンクのロード間に遅延が発生する可能性 ry 。 ry 。
この遅延を軽減するために、E2はメモリインタフェースコントローラ(MIC)と呼ばれる特殊なユニット ry
。 MICはL1データキャッシュの制御を引き継ぎ、キャッシュの一部をプリフェッチストリームバッファに変更します[8,11]。
ストリームバッファは、次のベクトルロードのアドレスを予測し、そのデータをキャッシュに早期に持ち込む。
これにより、後続の命令ブロックのベクタロードが常にL1キャッシュにヒット ry
?   ry 従来のキャッシュとして動作 ry 。
 ベクトルおよびスカラー演算は命令ブロックで混合されるので、キャッシュの一部は依然として従来型キャッシュとして動作する必要があります。
? ry 半減させますか? それらの方法をスト??リームバッファ用のメモリに変換する。
キャッシュのサイズを半分にするのではなく、キャッシュのセットアソシアティビティを半減させますか? つまりそれらのウェイをストリームバッファ用のメモリに転換する。
ベクタロード時に、キャッシュはストリームバッファをチェックします。
スカラのロードとストアでは、チェックするセットの数は少なくなりますが、キャッシュは同じ方法でキャッシュをチェックします。
?  ry 、ブロックコミットまでストリームバッファにバッファされ、その時点 ry 。
 ベクタストア命令は、ストリームバッファにバッファされ、ブロックコミット時点でメインメモリに直接書き込まれます。
0203>>201垢版2018/07/27(金) 02:47:07.02ID:pBBIx/eO?2BP(0)

4. 例:RGBからYへの変換
 このセクションでは、E2でプログラムをベクトル化 ry 例 ry 。
図2は、カラー画像をグレースケールに変換するために一般的に使用されるRGBからYへの輝度変換のためのCコードおよび対応するベクトル化されたアセンブリを示す。

1 // numVectors > 0
2 // y = r * .299 + g * .587 + b * .114;
3 void rgb2y(int numVectors,
4   __vector float *r, __vector float *g,
5   __vector float *b, __vector float *y)
6 {
7 __vector float yr = { 0.299f, 0.299f,
8   0.299f, 0.299f };
9 __vector float yg = { 0.587f, 0.587f,
10   0.587f, 0.587f } ;
11 __vector float yb = { 0.114f, 0.114f,
12   0.114f, 0.114f };
13
14 for (int i = 0; i < numVectors; i++)
15   y[i] = r[i] * yr + g[i] * yg + b[i] * yb;
16 }
17
18 _rgb2y:
19   read t30, r3  // numVectors
20   read t20, r4  // next rのアドレス
21   read t21, r5  // 次のgのアドレス
22   read t22, r6  // 次のアドレスb
23   read t32, r7  // yのアドレス
24   read t31, r8  // i
25   read t1, v0  // vector yr
26   read t3, v1  // ベクトルyg
27   read t5, v2  // vector yb
28
0204>>203垢版2018/07/27(金) 02:49:23.89ID:pBBIx/eO?2BP(0)

29 // RGBからYへの変換
30   vl t0, t20 [0]  // ベクトルロード
31   vl t2, t21 [1]
32   vl t4, t22 [2]
33   vfmul t6, t0, t1  // ? ベクトルfp mul  ベクトル 乗算 fp
34   vfmul t7, t2, t3
35   vfmul t8, t4, t5
36   vfadd t9, t6, t7  // ? ベクトルfp add  ベクトル 加算 fp
37   vfadd t10, t8, t9
38
39 // 結果をYに格納する
40   multi t40, t31, #32
41   add t41, t32, t40
42   vs 0(t41), t10 [3]  // ベクトルストア
43
44 // ループテスト
45   tlt t14, t31, t30
46   ret_t<t14>
47   br_f<t14> rgb2y
48   addi r8, t31, #1
49   addi r4, t20, #32
50   addi r5, t21, #32
51   addi r6, t22, #32

図2: ベクトル化されたRGBからYへの輝度変換のためのC ry およびE2アセンブリリスト。
0205>>204垢版2018/07/27(金) 02:55:53.80ID:pBBIx/eO?2BP(0)

? 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行目)のみです。
ただし、ほとんどの命令はグローバルレジスタファイルに書き込むことができます。
0206>>205垢版2018/07/27(金) 02:57:32.83ID:pBBIx/eO?2BP(0)

 ベクトル命令は 'v'で始まります(行30-37と42)。 >>204 >>203-204 >>203
すべてのロード命令とストア命令には、ロード・ストア識別子が割り当てられ、シーケンシャル・メモリ・セマンティクスが確実に行なわれます(3032行目と42行目)。
? これは、割り当てられた負荷ID0は、ID1のストアの前に ry 。
ここで割り当てられた処理ID0は、ID1のストアの前に完了する必要があります。
? ry 見ることができない。
 ほとんどの命令は述語になり得、述語は定義されたブロック内でしか参照できない。
述語命令は、述語命令に符号化された極性と比較される真または偽を表すオペランドを取る(_tおよび_fで示される)。
45行目のテスト命令は、受信命令(行4647)が自身の符号化された述語と比較する述語を作成する。
一致する述部を持つ命令だけが実行されます。


Page 6

 ブロックは最大で128個のスカラ命令に制限されています。
ベクトル命令を使用する場合、ブロックは合計32個のスカラ命令とベクトル命令に制限されます。
? には27種類 ry 。
ブロック_rgb2yには計 27 個のスカラー命令とベクトル命令が混在しています。
0207>>206垢版2018/07/27(金) 03:03:38.97ID:pBBIx/eO?2BP(0)

サイクル  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

図3: 図2の1つの可能なスケジュール。
0208>>207垢版2018/07/27(金) 03:09:30.30ID:pBBIx/eO?2BP(0)

? 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 。
0209>>208垢版2018/07/27(金) 03:12:18.38ID:pBBIx/eO?2BP(0)

 我々は、最適化と分析のフレームワークであるMicrosoft Phoenixソフトウェア付きの新しいコンパイラバックエンドと SystemC とを使用して E2用のアーキテクチャシミュレータを開発しました[1]。
? 、産業強度コンパイラ ry 。
ry 、我々の産業強度コンパイラと組み合わせることで、アーキテクチャの詳細な調査と評価を実行できるサイクル精度の高いFPGA実装を開発中です。
? ry 先行しています。
 多くの課題が待受けています。
アクセラレータとして説得するためには、GPUや専用ベクトルプロセッサなどの特殊なアクセラレータよりも優れた性能、電力効率、プログラマビリティ ry
。 E2は汎用プロセッサとしても優れている可能性 ry 。その場合、新しいISAへの移行を正当化するために、現在の静的マルチコア・アーキテクチャに比べて十分な電力/性能 ry
。 E2のパフォーマンスと電力効率は、コアを動的に構成および分解する能力を基盤としているため、動的構成を管理するための正しいポリシーとメカニズムには慎重な検討 ry
? ry プログラマーが基盤となるハードウェアについて推論 ry 。
理想的には、コンポジションに関するすべての決定をランタイムシス ry 、プログラマがこのハードウェアの根本に付いて推論することを完全に免れます。
 最後に、組み込みデバイスからデータセンターまで、E2のパワーとパフォーマンスのトレードオフの能力が役立つさまざまなアプリケーションドメインがあります。
今後数か月 ry 電力性能 ry 調査
0210>>209垢版2018/07/27(金) 03:14:44.39ID:pBBIx/eO?2BP(0)

6. 参考文献
[1] Microsoft Phoenix。
http://research.microsoft.com/phoenix/
[2] ARM。 Cortex-A9 MPCoreテクニカルリファレンスマニュアル、2009年11月
[3] D. Burger、SW Keckler、KS McKinley、M. Dahlin、LK John、C. Lin、CR Moore、J. Burrill、RG McDonald、W. Yoder、およびTRIPSチーム。 EDGEアーキテクチャを使用したSilicon Endへのスケーリング IEEE Computer、37(7):44?55、2004年7月。
[4]ケイデンス。 Cadence InCyte Chip Estimator、2009年9月。
[5] H. EsmaeilzadehおよびD. Burger。.階層的制御予測:積極的な予測のサポート。.マルチコアアーキテクチャにおけるシーケンシャルプログラムの並列実行に関する2009ワークショップの講演会、2009年。
[6] MD HillとMR Marty。 マルチコア時代のアムダールの法則。 IEEE COMPUTER、2008。
[7] E.?Ipek、M. K?rman、N. K?rman、およびJF Mart?ez。 コア・フュージョン:チップ・マルチプロセッサにおけるソフトウェア・ダイバシティの適応。 コンピュータアーキテクチャに関する国際シンポジウム(ISCA)、サンディエゴ、CA、2007年6月。
0211>>210垢版2018/07/27(金) 03:15:58.77ID:pBBIx/eO?2BP(0)

? [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年。
0212>>184-211垢版2018/07/27(金) 03:21:15.54ID:pBBIx/eO?2BP(0)

>>184-211
http://theregister.co.uk/2018/06/18/microsoft_e2_edge_windows_10/
http://gigazine.net/news/20180620-microsoft-e2/
http://web.archive.org/web/20110119204947/research.microsoft.com:80/en-us/projects/e2/


>478 山口青星 160930 1929 /EmvfkU+
:
>           意味スレッド有機分散普遍浸透

>479 478 160930 1931 /EmvfkU+
:
>> マルチ PC 的スーパスカラ マルチ PC 的順序外実行
>>>>>>>01> ↓
>>>01> フェイルレストランザクション ( 普遍浸透有機スレッド Aperios BeOS PalmOS6 DfBSD )
>>>>>>>01> ↓
>>>>>01> フェイルレストランザクションベース細粒度分散 VM
>>>>>>01>
>>>>>>01>
>>v1> メインメモリ細粒度ページ ( キャッシュライン投影 ) ※1
>>v1> ↓
>>>>>>>>>01> 細粒度ページ単位普遍マルチスレッド ( 完全掌握 ) ※2
>>v1> ↓
>>>>>>>>>01> キャッシュ対応疑似分散 UMA ( コヒーレントレスコヒーレント 浸透スレッド ) ※3
>>v1> ↓
>>>>>>>>>01> 透過可視マルチプロセッサベース論理物理ユニプロセッサ ( 256KB-SPE 込 ) ※4
>>v1>
>>v1> ↓↑ ( VM 策 ↑ / ↓ 環境策 1 )
>>v1>
:
0213>>212垢版2018/07/27(金) 03:23:10.80ID:pBBIx/eO?2BP(0)

>>184-212 >>212
>480 479 161001 2229 hw5iBIwd
>>>>>>>>7> ※1 ROM 化オブジェクト 多段実身仮身 TRONCHIP キュー ( MMU )
>>>>>>>>7> → 自律 機能メモリ
>>>>v>
>>>>v> ※2 選別 波及 浸透 仮身 高低 細胞
> 競合自動回避 分配済オブジェクト投影 ( 必然分配 上流 Ru?y )
>>>>>>>>> API 内外 鏡像 → API 内部 API 外部 ( 内宇宙 外宇宙 )
>>>>>>>>n>
>>>>>>>>>01> ※3 BeBox : キャッシュ非対応 ( 環境 )
>>>>>>>>>71>
>>>>>>>>>01> ※4 MPU 機構直交融合動的普遍オーバライド
>>>>>>>><71> ( 加算器 レジスタ トラップ・ベクタ・ブレークポイント )
>>>>>>>>>71>
>>>>>>>>01> ※5 Rite : スタック 分散 ( Amoeba : 生バイナリ )
>>>>>>01>
:

>485 478 161006 2307 sOXXCC59
:
>>>>><7> 細粒度スレッドレベル部品分散 VM / MTRON WinnyOS ( Aperios/MuseOS )
:
0214>>213垢版2018/07/27(金) 03:25:24.36ID:pBBIx/eO?2BP(0)

>>184-213 >>212-213
>487 486 161008 1739 7/TdBlDM
:
>>>>>>>><71> ↓
>>>>>>><7> 有機無機ハイブリッドコンピュータ ( 有機分子 返り値 互換 )
>>>>>>>><71> ↓
:

>502 478 161016 1447 +gGlHDwt
:
>>>>><71> AAP/SPE AI/AL クラスタ
>>>>>>>><71> ↓
>>>>><71> AAP/SPE 有機コンパイル ( 自生 / 3D プリンタ )
>>>>>>>> 細粒度ライブラリベース回路 ( 最適化 )
>>>>>>>> 平面有機回路 積層有機回路
>>>>>>>><71> ↓
:
0216>>215垢版2018/07/27(金) 03:54:39.51ID:pBBIx/eO?2BP(0)

>>184-215 >>212-215
>>25-42 >>97-98
>>212
>意味スレッド有機分散普遍浸透
>ry ( 普遍浸透有機スレッド
>細粒度ページ単位普遍マルチスレッド ( 完全掌握 ) ※2
>キャッシュ対応疑似分散 UMA ( コヒーレントレスコヒーレント 浸透スレッド ) ※3
>>213
>※2 選別 波及 浸透 仮身 高低 細胞
>競合自動回避 分配済オブジェクト投影 ( 必然分配 上流 Ru?y )
:
>細粒度 ry 分散 VM /
>>214
>有機無機ハイブリッドコンピュータ ( 有機分子 返り値 互換 )
0217yamaguti垢版2018/07/30(月) 06:13:12.48ID:wOzVCFyH?2BP(0)

This is the html version of the file http://atrg.jp/ja/index.php?plugin=attach&;pcmd=open&file=06pezy.pdf&refer=ATTA2016
. Google


Page 1

ZettaScaler/PEZY-SCの紹介と今後の方向性
〜自動チューニング技術の現状と応用に関するシンポジウム発表資料
2016/12/26
PEZY Computing, K.K.
0218>>217垢版2018/07/30(月) 06:15:12.57ID:wOzVCFyH?2BP(0)

Page 2

PEZYグループ

株式会社PEZY Computing (ペジーコンピューティング)
・独自メニーコア・プロセッサ開発
・同汎用PCIeボード開発
・同独自システムボード開発
・同アプリケーション開発
・半導体2.5次元実装技術開発
・ウェハ極薄化応用技術開発
創業:2010年1月  社員数:23名

UltraMemory株式会社 (ウルトラメモリ)
・超広帯域独自DRAM開発
・DRAM積層技術開発
・磁界結合メモリIF開発
・ウェハ極薄化応用技術開発
・広帯域、高速DRAM開発
・最先端汎用DRAM受託開発
創業:2013年11月  社員数:41名

株式会社ExaScaler (エクサスケーラー)
・液浸冷却技術開発
・HPC液浸システム開発
・液浸スパコンシステム開発
・液浸冷却水槽販売
・液浸冷却システム販売
・液浸冷却用ボード類販売
創業:2014年4月  社員数:13名
0219>>218垢版2018/07/30(月) 06:16:03.52ID:wOzVCFyH?2BP(0)

PEZY Computing:メニーコア・プロセッサ
UltraMemory:超広帯域積層カスタムDRAM
ExaScaler:液浸冷却システム
? 組み合わせることにより、最終システムとしてスーパーコンピュータを開発
? 各社の要素技術を個別に製品展開


Page 3

主な内容

? ZettaScaler1.x/PEZY-SCの概要
? プログラミング概要
? 今後の展開
? その他の話題


Page 4

ZettaScaler1.x/
PEZY-SCの概要
0220>>219垢版2018/07/30(月) 06:18:31.10ID:wOzVCFyH?2BP(0)

Page 5

ZettaScaler-1.xシステム

Suiren(睡蓮) ZettaScaler-1.5
2014.10Install 2016.5 Upgrade (32node to 48node)

Shoubu(菖蒲) ZettaScaler-1.6
2015.6Install 2016.5 Upgrade

Suiren Blue(青睡蓮) ZettaScaler
2015.5 Install 2016.5 upgrade

Ajisai(紫陽花) ZettaScaler-1.6
2015.10Install 2016.5Upgrade

Satsuki(皐月) ZettaScaler-1.6
2016.5 Install

Sakura(さくら) ZettaScaler-1.6
2016.5 Install
0221>>220垢版2018/07/30(月) 06:19:21.12ID:wOzVCFyH?2BP(0)

Page 6

Top500
? 世界で最も高速なコンピュータシステムの上位500位までを定期的にランク付けし、評価するプロジェクト。
1993年に発足し、スーパーコンピュータのリストの更新を年2回発表
? 単位:FLOPS(Floating Operation per Second)浮動小数点命令を1秒間に何回実行するか?
? ハイパフォーマンスコンピューティング(HPC)における傾向を追跡・分析するための基準を提供することを目的とし、
LINPACKと呼ばれる行列計算ベンチマークによりランク付けを行っている。
? 大規模システムを構築するには資金力も必要

Green500
? 世界で最もエネルギー消費効率の良いスーパーコンピュータを定期的にランク付けし評価するプロジェクト
? 単位:FLOPS/W FLOPSあたりの消費電力。
? スーパーコンピュータにおけるグリーンITの指標の1つともされ、
日本では「スーパーコンピュータの省エネ性能ランキング」などと呼ばれる事もある。
? 省電力、高効率実行の技術力が問われる


Page 7

Green500での成果

理研情報基盤センターに設置した菖蒲が 2015/6, 11, 2016/6の3期連続で首位
皐月も2位を獲得
0222>>221垢版2018/07/30(月) 06:20:27.16ID:wOzVCFyH?2BP(0)

Page 8

ZettaScaler-1.xのキーテクノロジー

液浸冷却技術“ESLiC”
1,024メニーコアプロセッサ, “PEZY-SC”
液浸サーバー“Brick”高密度実装技術
0223>>222垢版2018/07/30(月) 06:21:08.85ID:wOzVCFyH?2BP(0)

Page 9

菖蒲ZettaScaler-1.6システム

? ノード:1つのXeon に4個のPEZY-SCnp が接続されている

Intel Xeon E5-2618L v3
DDR4 LP 32GB DDR4 LP 32GB DDR4 LP 32GB DDR4 LP 32GB

PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane
PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane
PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane
PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane

PCH C612
DMI2

BMC
RS-232C
SPI
VGA

USB SATA SATA

Infiniband FDR
PCIe 8Lane

PEZY-SCnpはPEZY-SCの半導体部分は変更せずに パッケージとしての信号品質と電源品質を向上したもの
0224>>223垢版2018/07/30(月) 06:21:52.86ID:wOzVCFyH?2BP(0)

Page 10

菖蒲ZettaScaler-1.6システム

? ブリック:4ノードの集合体
? 液浸層:16ブリックから構成
? 全体システム:5 液浸層から構成


Page 11
0225>>224垢版2018/07/30(月) 06:22:43.07ID:wOzVCFyH?2BP(0)

第2世代プロセッサ「PEZY-SC」

Name  PEZY-SC

製造プロセス  TSMC28HPM

コア性能
動作周波数  733MHz(Target)
キャッシュ  L1: 1MB, L2: 4MB, L3: 8MB

周辺回路
動作周波数  66MHz

IPs
内蔵CPU  ARM926 x 2  Cache L1:32KB*2, L2: 64KB
PCIe    PCIe Gen3 x 8Lane 4Port  (8GB/s x 4 = 32GB/s)
DDR    DDR4 64bit 2,400MHz 8Port  (19.2GB/s x 8 = 153.6GB/s)

コア(PE)数  1,024 PE

演算性能
3.0T Flops (単精度浮動小数点)
1.5T Flops (倍精度浮動小数点)

消費電力
70W (Leak: 10W, Dynamic: 60W)
46W@533MHz (PEZY-1以下)

パッケージ
DDR版  47.5*47.5mm (2,112pin)
Wide-IO版  20*60mm CSP (#pin: TBD)
0226>>225垢版2018/07/30(月) 06:23:33.00ID:wOzVCFyH?2BP(0)

Page 12

PEZY-SCの特徴

? 高性能
  ? 8スレッドSMT(Simultaneous Multi-threading)
    ? 4スレッドを順番に切り替え x 2面
    ? 8スレッド分のレジスタファイルを用意
  ? Deep pipelining (16Stages)
  ? 潤沢なオンチップキャッシュ、メモリ

? 低消費電力、高密度実装
  ? 極端に高い周波数は狙わない
  ? 各PEはシンプルに
    ? In-order 2way SuperScaler
    ? 分岐予測なし
    ? キャッシュ間コンシステンシはソフトウェア責任
    ? 独自ISAによる必要命令の絞り込み
0227>>226垢版2018/07/30(月) 06:24:33.15ID:wOzVCFyH?2BP(0)

Page 13

PEZY-SCのブロック図

ARM0  ARM1    PTILE  PTILE  PTILE  PTILE
Local Bus / Config Bus
PEZY-SC Core    DDR4C  DDR4C  DDR4C  DDR4C  DDR4C  DDR4C  DDR4C  DDR4C
RSTGen
CLKGen
INTC
SRAM
SPI
PIT
PIT
UART
WDT
GPIO

? PTILE: PCIe Gen3
? ARM926は2個搭載 役割分担に対する制約はない
  ? L1I 16KB / L1D 16KB / L2 32KB
  ? ITCM 16KB / DTCM 16KB
  ? MMU
0228>>227垢版2018/07/30(月) 06:25:31.86ID:wOzVCFyH?2BP(0)

Page 14

PEZY-SCプロセッサ全体構成

3レイヤーの階層構造を持ったMIMD型メニコアプロセッサ
  (4PE x 4(village) x 16(city) x 4(prefecture) = 1024PE)

PE

Program Counter (8set)
L1 I- Cache (2KB)
ALU 4FpOps/Cycle
Register File 32b x 32w x 8set
Local Memory (16KB)

Village (4PE)

PE
PE
L1 D- Cache (2KB)
PE
PE
L1 D- Cache (2KB)

City ( 16 PE )

Special Function Unit
Village (4PE)  Village (4PE)
Village (4PE)  Village (4PE)
L2 I-Cache (32KB)
L2 D-Cache (64KB)
0229>>228垢版2018/07/30(月) 06:31:21.90ID:wOzVCFyH?2BP(0)

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
0230>>229垢版2018/07/30(月) 06:32:07.83ID:wOzVCFyH?2BP(0)

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
0231>>229-230垢版2018/07/30(月) 06:32:50.77ID:wOzVCFyH?2BP(0)

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
0232>>229-231垢版2018/07/30(月) 06:33:48.30ID:wOzVCFyH?2BP(0)

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
0233>>229垢版2018/07/30(月) 06:45:42.46ID:wOzVCFyH?2BP(0)

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
0234>>230垢版2018/07/30(月) 06:46:14.12ID:wOzVCFyH?2BP(0)

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
0235>>231垢版2018/07/30(月) 06:47:10.62ID:wOzVCFyH?2BP(0)

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
0236>>232垢版2018/07/30(月) 06:47:55.24ID:wOzVCFyH?2BP(0)

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
0237>>229-236垢版2018/07/30(月) 06:51:12.91ID:wOzVCFyH?2BP(0)

ARM926
Host I/F & Inter Processor I/F
Host I/F
PCI Express Gen3 x8
Host I/F
PCI Express Gen3 x8
Host I/F
PCI Express Gen3 x8
Host I/F
PCI Express Gen3 x8
UART
SPI BUS
GPIO
0238>>229-237垢版2018/07/30(月) 06:54:34.12ID:wOzVCFyH?2BP(0)

Page 15

階層構造と同期メカニズム

? スレッドを階層管理
? 同期レベル(バリア同期)
  ? Level 0 :スレッドレベル、 PE内の0-3スレッド、または4-7スレッド
  ? Level 1 : PEレベル、PE内の8スレッド
  ? Level 2 : Villageレベル、4つのPEとL1キャッシュ
  ? Level 3 : Cityレベル、16のPEとL1/L2キャッシュまで
  ? Level 4 : Prefectureレベル、256のPEとL1/L2/L3キャッシュまで
  ? Level 5 : PEZY-SCレベル、1024のPEとL1/L2/L3キャッシュまで

Sync Level
0  Thread 0-3  Thread 4-7
1    PE  PE  PE  PE
      L1 Cache
2        Village  Village  Village  Village
          L2 Cache
3            City
              L3 Cache
4                Prefecture
5                  PEZYSC Core
0239>>238垢版2018/07/30(月) 06:55:38.03ID:wOzVCFyH?2BP(0)

Page 16

オンチップキャッシュ

  level  Size(B)  Chip Total(B)  Way  Entry  Line 長(B)  接続
データキャッシュ
  L1  2K  1M  8  4  64  2PEに1つ
  L2  64k  4M  8  32  256  Ciry毎 L1 8 個に対して
  L3  2M  8M  8  256  1k  Prefecture毎 L2 16 個に対して
命令キャッシュ
  L1  2K  2M  8  2  128  PE毎
  L2  32K  2M  4  32  256  City毎 PE 16個
  L3  128K  512K  4  32  1K  Prefecture毎 L2 16 個

複数PE間のメモリコンシステンシはソフトウェア責任、 PE毎に16KBのローカルメモリを備える


Page 17

プログラミング概要
0240>>239垢版2018/07/30(月) 06:56:30.65ID:wOzVCFyH?2BP(0)

Page 18

プログラミング対象

Xeon
  PEZY-SC
  PEZY-SC
  PEZY-SC
  PEZY-SC
    <演算リソース>
      ・1024個の演算コア(PE)
      ・1PEあたり8個のスレッド
    <メモリ>
      ・32GBのデバイスメモリ
      ・1PEあたり16KBのローカルメモリ
0241>>240垢版2018/07/30(月) 06:57:53.49ID:wOzVCFyH?2BP(0)

Page 19

作成するプログラム

? 2種類のプログラムを作成する必要がある
  ? CPU上のプログラム(C++で記述)
  ? PEZY-SC上のカーネルプログラム(PZCLで記述)
    ※PZCL=カーネルプログラムを記述するPEZY独自仕様の言語
    コンパイラはllvmを用いている。

main関数呼び出し
  CPU プログラム
    起動  終了
      カーネルプログラム1
    起動  終了
      カーネルプログラム2

上図のようにCPUプログラムからカーネルプログラムを起動する
0242>>241垢版2018/07/30(月) 06:58:54.95ID:wOzVCFyH?2BP(0)

Page 20

特殊な関数

? カーネルプログラムで利用可能な、PEZY-SC制御に必要な組み込み関数がある。

  ? sync_L1 (L1キャッシュにアクセスする単位でのスレッド同期)
  ? sync_L2 (L2キャッシュにアクセスする単位でのスレッド同期)
  ? sync_L3 (L3キャッシュにアクセスする単位でのスレッド同期)
  ? sync (sync_L3と同等)

  ? flush_L1 (L1キャッシュのフラッシュ)
  ? flush_L2 (L2キャッシュのフラッシュ)
  ? flush_L3 (L3キャッシュのフラッシュ)
  ? flush (flush_L3と同等)

  ? get_pid (PE ID取得)
  ? get_tid (PE内スレッドID取得)
  ? chgthread (PE内スレッドの表裏切り替え)
0243>>242垢版2018/07/30(月) 06:59:40.84ID:wOzVCFyH?2BP(0)

Page 21

カーネルプログラムの構造

? 基本的な構造
  void pzc_foo(…)
  {
    ? PE ID取得(get_pid)
    ? PE内スレッドID取得(get_tid)
    ? 自スレッドに割り当てられた処理の実行
    ? 出力バッファフラッシュ(flush)
  }


Page 22

pzcAddサンプル

? カーネルは起動するとユニークな tid,pid を持って、 CPUから指定されたスレッド分実行される。

tid=0,pid=0
  void pzc_Add(float* a, float* b, float* c, int count)
  {
    int tid = get_tid();
    int pid = get_pid();
    int index = pid * get_maxtid() + tid;
    if(index >= count) return;
    c[index] = a[index] + b[index];
    flush(); // cache flush
  }
0244>>243垢版2018/07/30(月) 07:00:23.57ID:wOzVCFyH?2BP(0)

tid=1,pid=0
  void pzc_Add(float* a, float* b, float* c, int count)
  {
    int tid = get_tid();
    int pid = get_pid();
    int index = pid * get_maxtid() + tid;
    if(index >= count) return;
    c[index] = a[index] + b[index];
    flush(); // cache flush
  }

tid=7,pid=N
  void pzc_Add(float* a, float* b, float* c, int count)
  {
    int tid = get_tid();
    int pid = get_pid();
    int index = pid * get_maxtid() + tid;
    if(index >= count) return;
    c[index] = a[index] + b[index];
    flush(); // cache flush
  }

? 1つのPEには8スレッドが存在する
  ? スレッド数を128で起動した場合、128/8=16個のPEが実行される
? 8192を超えるスレッド数で起動する場合、CPUから複数回に分けて起動される
0245>>244垢版2018/07/30(月) 07:01:00.85ID:wOzVCFyH?2BP(0)

Page 23

簡単な最適化の説明

? 前述のpzcAddサンプルを用いて、PEZY-SC内での簡単な最適化の説明を行う
? ここでは以下のような最適化を行っている
  ? カーネル呼び出しのオーバヘッドの削減
  ? chgthreadを用いたレイテンシーの隠蔽
  ? 同期を用いたキャッシュアクセスの効率化


Page 24

オーバヘッド削減(1/2)

? 以下のコードをスレッド数=要素数として起動する場合、
8192を超えるサイズを処理しようとした場合にカーネルが複数回起動されるため、カーネル呼び出しのオーバヘッドが増加する

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int index = pid * get_maxtid() + tid;
  if(index >= count) return;
  c[index] = a[index] + b[index];
  flush(); // cache flush
}
0246>>245垢版2018/07/30(月) 07:03:04.06ID:wOzVCFyH?2BP(0)

Page 25

オーバヘッド削減(2/2)

? 以下のようにカーネルコードを修正し、CPUからの呼び出し時のスレッド数を固定にしても、
1回のカーネル呼び出しで全要素の処理を行えることとなる。
? これによってオーバヘッドを減らすことができる。

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    c[pos] = a[pos] + b[pos];
  }
  flush();
}
0247>>246垢版2018/07/30(月) 07:03:40.68ID:wOzVCFyH?2BP(0)

Page 26

寄り道:CPUエミュレート

? このようにカーネルの中でループさせることは別のメリットもある。
? CPUで1スレッドでの動作として、この関数を同じように動作させることができる
→ソースを共有したデバッグに有効

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    c[pos] = a[pos] + b[pos];
  }
  flush();
}

CPUでは
  get_tid() … 常に0
  get_pid() … 常に0
  get_maxtid() … 1
  get_maxpid() … 1
0248>>247垢版2018/07/30(月) 07:04:41.29ID:wOzVCFyH?2BP(0)

Page 27

スレッドの切り替え (1/3)

? 1つのPEに8スレッド存在するが、一度には4スレッドのみが動作する。
  ? 表裏で4スレッドずつ。
? sync/flushなどの同期やchgthreadを使用しないと、表裏が切り替わらない。
0249>>248垢版2018/07/30(月) 07:05:33.12ID:wOzVCFyH?2BP(0)

Page 28

スレッドの切り替え (2/3)

? 以下の実装では、ループの中にスレッドが切り替わる命令が無いので
現在実行中の各スレッドが flushにたどり着くまで裏スレッドは処理されない。
? アクセスのアドレスが不連続になり、キャッシュ効率が悪い
? メモリアクセスのレイテンシーを隠蔽できない

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    c[pos] = a[pos] + b[pos];
  }
  flush();
}

    memory
  ↑ request    ↓
t0    stall      flush
t4
0250>>249垢版2018/07/30(月) 07:06:07.72ID:wOzVCFyH?2BP(0)

Page 29

スレッドの切り替え (3/3)

? 以下のようにa, bの読み込み後にchgthreadを入れる事で改善される。

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    float a_ = a[pos];
    float b_ = b[pos];
    chgthread();
    c[pos] = a_ + b_;
  }
  flush();
}

    memory
  ↑ request    ↓
t0    stall      flush
   ↓ chgthread
t4
0251>>250垢版2018/07/30(月) 07:06:50.07ID:wOzVCFyH?2BP(0)

Page 30

メモリアクセスの同期(1/2)

? 以下の実装だと、各スレッドがメモリレイテンシーの状況によって進行度がばらばらになり、
キャッシュアクセスが非効率となる場合がある。

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    float a_ = a[pos];
    float b_ = b[pos];
    chgthread();
    c[pos] = a_ + b_;
  }
  flush();
}

  memory request
t0 ↑
t1  ↑

t7 ↑
0252>>251垢版2018/07/30(月) 07:07:24.21ID:wOzVCFyH?2BP(0)

Page 31

メモリアクセスの同期(2/2)

? 以下のようにメモリアクセス前に同期を入れることにより、メモリアクセス性能が向上する場合がある
ただし同期自体のペナルティがあるため、利用する/しない、あるいは同期レベルの選択に注意が必要

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    sync_L2();
    float a_ = a[pos];
    float b_ = b[pos];
    chgthread();
    c[pos] = a_ + b_;
  }
  flush();
}

  memory request
t0 →  ↑
t1  →  ↑
…  sync
t7 →    ↑
0253>>252垢版2018/07/30(月) 07:08:00.62ID:wOzVCFyH?2BP(0)

Page 32

PEZY-SCの効果的な利用

? スレッド、PE単位の並列性を活かす
? L1~L3キャッシュに優しいメモリ配置を行う
? CPUからカーネルの起動回数を減らす
? chgthread を用いてレイテンシーを隠蔽する
? 同期を適切に用いて、キャッシュの効率を上げる
? ローカルメモリを利用することでメモリアクセスを減らす
? その他各種設定(メモリ書き出し設定・カーネル呼び出し方法設定)→これについては今後必要に応じて情報公開します。


Page 33

ローカルメモリの利用(1/2)

? PE毎に16KBのローカルメモリをカーネルプログラムで利用できる
? デフォルトではPE内の8スレッドのスタック領域として、2KBずつを割り振られている
  0x0000
    スレッド0用スタック領域(2KB)
    スレッド1用スタック領域(2KB)
    スレッド2用スタック領域(2KB)
    スレッド3用スタック領域(2KB)
    スレッド4用スタック領域(2KB)
    スレッド5用スタック領域(2KB)
    スレッド6用スタック領域(2KB)
    スレッド7用スタック領域(2KB)
  0x3fff          16KB
0254>>253垢版2018/07/30(月) 07:08:43.24ID:wOzVCFyH?2BP(0)

Page 34

ローカルメモリの利用(2/2)

? このままではユーザが利用できないため、スレッド用のスタック領域を削減する
(下図はスレッド毎のスタックサイズを1KBとした場合)
  0x0000
    スレッド0用スタック領域(1KB)
    スレッド1用スタック領域(1KB)
    スレッド2用スタック領域(1KB)
    スレッド3用スタック領域(1KB)
    スレッド4用スタック領域(1KB)
    スレッド5用スタック領域(1KB)
    スレッド6用スタック領域(1KB)
    スレッド7用スタック領域(1KB)
0x2000            8KB
    ユーザ利用可能領域(8KB)
0x3fff            8KB


Page 35

プログラミングのパターン

? PEZY-SCのカーネルプログラムはなるべく全処理を一括で持っていきたい
  ? MIMDでプログラミングに自由度があるので、多少並列度が落ちるところもとりあえずカーネルには載せることは容易

    SC処理1 → CPU処理2 → SC処理3 → CPU処理4 → SC処理5

      ↓

    SC処理1 → SC処理2 → SC処理3 → SC処理4 → SC処理5
0255>>254垢版2018/07/30(月) 07:09:32.45ID:wOzVCFyH?2BP(0)

Page 36

プログラミングのパターン

? フロントエンドがclangであり、ほとんどのケースではSCとCPUでのソースコードの共有が容易。
? デバッグ時には細かい単位で切り替えながら不具合を特定することが非常に有効

  CPU処理1 ⇔ SC処理1
      ↓
  CPU処理2 ⇔ SC処理2
      ↓
  CPU処理3 ⇔ SC処理3
      ↓
  CPU処理4 ⇔ SC処理4
      ↓
  CPU処理5 ⇔ SC処理5


Page 37

プログラミングのパターン

? 最終的な実行はなるべくカーネル処理だけとする
  CPU処理1 SC処理1
        ↓
  CPU処理2 SC処理2
        ↓
  CPU処理3 SC処理3
        ↓
  CPU処理4 SC処理4
        ↓
  CPU処理5 SC処理5
0256>>255垢版2018/07/30(月) 07:10:04.32ID:wOzVCFyH?2BP(0)

Page 38

その他の話題


Page 39

共同開発のパターン

? そもそもPEZY-SCは利用できそうだろうか?
? 自分のところで評価するのは負荷が高い。。。


Page 40

共同開発のパターン1

? そもそもPEZY-SCは利用できそうだろうか?
? 自分のところで評価するのは負荷が高い。。。
→(可能な範囲で)実装に必要な情報をご提供頂き、PEZY側で(可能な範囲で)評価を行う(基本はNDAベース)
  A社/大学/研究所
実装に必要な情報  ↑
  ↓      評価結果
    PEZY
0257>>256垢版2018/07/30(月) 07:10:59.53ID:wOzVCFyH?2BP(0)

Page 41

共同開発のパターン2

? そもそもPEZY-SCは利用できそうだろうか?

? まずは簡単に触ってみたい。。。
? PEZY-SCを空冷環境下でご提供
  ? ただし、開発途上のものなので十分な情報やサポートを保証できるものではありません。
  (弊社側で可能な範囲でのご提供となります)

  A社/大学/研究所
    ↑    ↑
PEZY-SC空冷環境  評価結果
    PEZY
0258>>257垢版2018/07/30(月) 07:12:26.60ID:wOzVCFyH?2BP(0)

Page 42

PEZY-SC評価システム例

LIANLI ATX PC-T60A
  ASUS X99E WS
    Intel? Xeon? Processor E5-2650 v3 (25M Cache, 2.30 GHz)
    Samsung DDR4-2133 8GB×4
    Crucial 2.5” SSD CT250BX100SSD1
    PEZY-SC Dual Board x 2 株式会社 PEZY Computing 社製品
  RA-750S
  Optional
    120 mm / 140 mm Fan Cooler Model: T60-1
0259>>258垢版2018/07/30(月) 07:13:17.14ID:wOzVCFyH?2BP(0)

Page 43

共同開発のパターン3

? そもそもPEZY-SCは利用できそうだろうか?
? 液浸環境下でスパコン構成を試してみたい。 →菖蒲システムの利用公募
http://accc.riken.jp/news1/2016-07-01/
こちらも十分な情報やサポートを保証できるものではありません(可能な範囲でのご提供となります)
研究開発用途で開発情報を公開可能ならばお勧め!
個人でも応募可!!


Page 44

菖蒲システムでできること

? 複数のコンピュートノードを用いた大規模な並列計算が可能。MPIの利用が可能。
? 現状は1タンク=16ブリック=256ノードが開発者に常時提供されている。
必要に応じて全システムでの利用も可能。
? ジョブ管理システムslurmの利用が可能。
? フロントエンド、コンピュートノードともに linux(centOS7)が入っており、
一般的なlinuxのライブラリやツールが利用可能。
0260>>259垢版2018/07/30(月) 07:14:05.52ID:wOzVCFyH?2BP(0)

Page 45

菖蒲の構成

? フロントエンドとコンピュートノードから構成される。
? 4つのコンピュートノードは1つのブリックを構成する。
? また、各コンピュートノードはそれぞれ1個のXeonと4個のPEZY-SCを所持する。
? フロントエンド、コンピュートノードはInfinibandにより結合されている。
shoubu
  t1n011 t1n012 t1n013 t1n014  1ブリック
  t1n021
  ‥‥


Page 46

ジョブ管理システムの利用

? 複数の人が菖蒲システムを利用するためにジョブシステム (slurm)が導入されている。
これにより特定のコンピュートノードを意識せずに利用ができる。
  ? ssh shoubu.riken.jp のようにしてフロントエンドにログインする。
  ? フロントエンド上でプログラムの編集、ビルドを行う。
  ? sbatch ?nodes <ノード数> --ntasks-per-node <ノードあたりの MPIプロセス数> tst.sh

    #!/bin/sh
    #SBATCH ?p debug
    #SBATCH ?exclusive

    mpirun ... //MPIを用いる場合
0261>>260垢版2018/07/30(月) 07:14:44.17ID:wOzVCFyH?2BP(0)

Page 47

今後の展開


Page 48

今後の展開

? 新プロセッサ PEZY-SC2の開発
  ? 2,048コアの演算PE+MIPSプロセッサ内蔵
  ? TCIインタフェースによる、メモリ帯域の飛躍的拡大

? Brickボード、液浸冷却システムのブラッシュアップ
  ? 新ブリック構成で冷却効率を向上

? ZettaScaler-2.xシリーズ
  ? これらの新規開発要素を組み合わせた、新しいスーパーコンピュータの実現
0262>>261垢版2018/07/30(月) 07:15:27.78ID:wOzVCFyH?2BP(0)

Page 49

PEZY-SC2の特徴

? CPUがMIPSとなりSC2とメモリ空間を共有する
→従来XeonとSCの間で必要であったメモリ転送が必要なくなる。

メモリ
↑ Xeon
↓ SC SC SC SC
メモリ メモリ メモリ メモリ

  ↓

メモリ
  MIPS
  SC2


Page 50

PEZY-SC2の特徴

? CPUとSC2の協調動作の強化
? 各種命令セットの補強
? (大きな変更なく)SCのプログラムをそのままコンパイル・実行できる
0263>>262垢版2018/07/30(月) 07:16:03.73ID:wOzVCFyH?2BP(0)

Page 51

外部に公開している情報

? 若干のサンプルプログラム
? Doxygenで自動生成されたAPIリファレンス
? 簡単なアーキテクチャ説明資料
? 簡単なプログラミングマニュアル


Page 52

外部に公開している情報

? 若干のサンプルプログラム
? Doxygenで自動生成されたAPIリファレンス
? 簡単なアーキテクチャ説明資料
? 簡単なプログラミングマニュアル



? ユーザポータルを作成してここに各種情報を集約していく予定です(2017/1予定)
  ? PEZYと個別にNDAのやり取りを行い、その後に参加して頂くようになります。
0264>>263垢版2018/07/30(月) 07:17:26.14ID:wOzVCFyH?2BP(0)

Page 53

開発中/予定のソフトウェア

? 物理系シミュレーション
? 開発環境
  ? OpenACC/OpenCL/PUDA(!)・・・
? 量子計算シミュレーション
? メタゲノム解析ツール
? ニューラルネット
  ? Caffe/・・・
? 数値計算ライブラリ
  ? BLAS/FFT・・・
? ・・・


Page 54

ご興味がありましたら
ishikawaATpezy.co.jp
お気軽にご連絡ください
0266>>265垢版2018/07/30(月) 07:23:57.02ID:wOzVCFyH?2BP(0)

>831 オryー 180706 1751 H22QHp/d
> 第51回のTop500は米国のSummitが中国から首位を奪回 | マイナビニュース
>http://news.mynavi.jp/article/20180706-659829/
:
>。もし運用 ry 、20.41PFlopsでTop500 5位 ry 、幻 ry 。ExaScalerでは、暁光を設置 ry 主体を募集 ry 、きちんと運用 ry 、国内でなくても良い

>832 オryー 0706 2235 kFCxLR3J
> 中国だな
0267>>173垢版2018/08/12(日) 20:42:35.91ID:ltAhnLdz?2BP(0)

>>184-216
http://rio2016.2ch.net/test/read.cgi/future/1481407726/105-154
>153 >>152 180812 2027 ltAhnLdz?
> >>105-152
> http://rio2016.2ch.net/test/read.cgi/future/1489922543/184-216
> >184 yamaguti 180727 0129 pBBIx/eO?2BP(0)
>> >>46 >>173 >>152-183
>> Google 翻訳
>>
>> これは、ファイル http://microsoft.com/en-us/research/wp-content/uploads/2016/02/e2-heart2010.pdf
>> の html版です。 Google
> :
>> E2ダイナミックマルチコアアーキテクチャにおける動的ベクトル化
>> 2010 HEART 2010の議事に出席する
> :


>154 >>153 180812 2033 ltAhnLdz?
>
> >>153
> http://arxiv.org/pdf/1803.06617.pdf#20180712120421
> http://mobile.twitter.com/jangray/status/1004874394957578242
> http://www.cs.utexas.edu/~cart/publications/dissertations/asmith.pdf#20150619203042
> http://www.cs.utexas.edu/users/mckinley/papers/trips-eval-asplos-2009.pdf#20151129082813
> http://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/trips-compiler-cgo4.pdf#20180619043037
> ftp%3A//ftp.cs.utexas.edu/pub/dburger/papers/IEEECOMPUTER04_trips.pdf#20170706111151
:
https://twitter.com/5chan_nel (5ch newer account)
0268YAMAGUTIseisei垢版2018/08/20(月) 01:55:24.80ID:xpTaf9mR?2BP(0)

HPKY 型 汎用 AI/AL
>>179 >>152 リンク先 > http://rio2016.2ch.net/test/read.cgi/future/1508026331/774# JinkakuSisutemu Sikumi >105-107
>774 yamaguti~貸 171020 1534 0nNF/MoU?
> >673 \> NN ベース AI というよりもいわば設計ベース AI ( AL ) + NN という事ならば説得力
>
> 従来予想 : 超強力弱い AI ( 粒度 時間方向割当度 → 強い AI 度 ) ( >5 168 )
> >371 yamaguti~貸 171011 1322 gs4iO9ie
>>+
>>粒度さえ充分に細かければ ( + データと計算機パワー 資金力 ( +
>>接地 必ずしも不要
>> http://rio2016.2ch.net/test/read.cgi/future/1505836194/217#280#284#998# EraaNaihou
>
>>+ データと
>↑ 学習済高低レイヤモジュール : 充実 ( 不足致命的ならず ) ?
>
> → 自然言語解釈動記憶システム ( 接地 ( 効果 ) 論理物理スロット シミュ ( 準 ) エミュ ) ≒ 人格システム ( 学習済モジュールベース )
>
>
>+ AutoML ( 等 ) での設計最適化 → 最早いわば設計ベース AI ( AL ) + NN ≒ 弱い強い AI ( AL ) ?
> >814 yamaguti~貸 171007 2158 ziH696dX?
>>>最適な設計を、AutoMLで探し出 ry 、AutoMLを使用した設計が、 ry 翻訳では専門家を完全に凌駕
>
> → 導かれる構造の例 ( 上記条件下 ) : 外部記憶比重 >>709 ⇔ 追加学習比重 ( 極論 : 不要 ) ( ≒ 簡易版強い AI ( AL ) )
> 但し 敢て追加学習 → 極論 : 転移学習だけで良い ( 下記文脈 )
>ry http://mobile.twitter.com/ken_demu/status/918820770456858624
>>>>DNNにMeta-Learning + ゲーム理論と転移学習( ry )と強化学習(人間の目的指向の再現)を組み合 ry AGIっぽ ry
>>>>>>>>> >482 自然言語解釈
>>>>>>>>>DeepMind : DNC のスロットベーススロットをスロットに見立てる等 \> ( → 整備済 )
> +
> http://rio2016.2ch.net/test/read.cgi/future/1506697885/814# JinkakuSisutemu Sikumi
>>814 yamaguti~貸 171007 2158 ziH696dX?
>>>> この国だけに配慮致します立場でなくなってしまいましたので申上げます
https://twitter.com/5chan_nel (5ch newer account)
0269YAMAGUTIseisei垢版2018/08/20(月) 02:36:33.99ID:xpTaf9mR?2BP(0)

>>268
>>>+ データと
>>↑ 学習済高低レイヤモジュール : 充実 ( 不足致命的ならず ) ?

必ずしも充実不要 ( 一見致命的不足状態も条件次第で可 )
0270YAMAGUTIseisei垢版2018/09/08(土) 00:07:50.66ID:sHJfJTCE?2BP(0)

>>269
> YAMAGUTIseisei wrote:
>> HPKY 型 汎用 AI/AL
>> DSL 型 汎用 AI/AL
>> 他
>>
>>
>> >179 yamaguti 180602 1505 5+vbS3Cj?
>>> >>162 >>152 >>178 辞書ベース
>>>> 23 yamaguti 180523 0850 nChEz1ni?
>>>>> 10 NN ベース辞書ベース例 ( 候補例 : テキストベース辞書ベース )
>>>>> 13 >22 >> この国だけに配慮致します立場でなくなってしまいましたので申上げます
>> :
>>
>>
>> >268 YAMAGUTIseisei 180820 0155 xpTaf9mR?
>>> HPKY 型 汎用 AI/AL
>>>>>179 >>152 リンク先 > http://rio2016.2ch.net/test/read.cgi/future/1508026331/774# JinkakuSisutemu Sikumi >105-107
>> :
>>
>>
>> >269 YAMAGUTIseisei 180820 0236 xpTaf9mR?
>>>>>268
>>>>>> + データと
>>>>> ↑ 学習済高低レイヤモジュール : 充実 ( 不足致命的ならず ) ?
>>> 必ずしも充実不要 ( 一見致命的不足状態も条件次第で可 )
>>
>> データなし + 学習機構なし ( NN 等なし ) 可 ( 禅 無 空 )
>>
>> 関連 時間方向粒度 : 疑似接地 ( 超高精度耳年増 )
:
0272YAMAGUTIseisei垢版2018/09/16(日) 18:40:23.27ID:m2szPimC?2BP(0)

>>189 >>267 >>184-216
YAMAGUTIseisei wrote:
>> E2ダイナミックマルチコアアーキテクチャにおける動的ベクトル化
>
> 訂正
>
>> スカラーモードでは、どの命令もブロック内の他の回路にオペランドを送信でき、電力を節約するためにALUのうち2つを除くすべてがオフになります。
>> ベクタモードでは、すべてのN個のALUはオンになっていますが、回路は同じベクタレーンの回路にのみオペランドを送信できます。
>
> スカラーモードでは、どの命令もブロック内の他の命令にオペランドを送信でき、電力を節約するためにALUのうち2つを除くすべてがオフになります。
> ベクタモードでは、すべてのN個のALUはオンになっていますが、命令は同じベクタレーンの命令にのみオペランドを送信できます。
0273>>270垢版2018/09/16(日) 21:30:31.65ID:m2szPimC?2BP(0)

> YAMAGUTIseisei wrote:
:
>> dahara1 氏
>> Universal Transformerを用いて翻訳を超える
>> http://webbigdata.jp/ai/post-1575
>>> 以下、ai.googleblog.comより「Moving Beyond Translation with the Universal Transformer」の意訳です。
>> 要約
>>
>>
>>
>> 目次
>>
>> * 1. ry まとめ
>> * 2. ry Transformerをより汎用的にしたUniversal Transformer
>> * 3. ry 感想
>> * 4. ry まとめ
>>
>> 1. ry まとめ
>>
>> ・機械翻訳で圧倒的な ry Transformerをより汎用的にしたUniversal Transformer ry
>> ・ry 曖昧な単語をより深く調べるように動的に動作を変更する事ができる
>> ・Transformerは翻訳以外の作業は不得意だが、Universal Transformerは様々な作業に応用できる
0274>>270垢版2018/09/16(日) 21:31:48.49ID:m2szPimC?2BP(0)

>> 2.Transformerをより汎用的にしたUniversal Transformer
>>
>> 以下、ai.googleblog.comより「Moving Beyond Translation with the Universal Transformer」の意訳です。
>>
>> 昨年、我々は既存の機械翻訳や、その他の自然言語を扱う既存 ry よりも顕著な成功 ry 機械学習モデルであるTransformer ry
>>
>> Transformer以前のニューラルネットワークに基づく機械翻訳アプローチの大半は、文章の先頭から順番に処理をしていました。
>> これはRNN ( ry ) ry 、RNNは文章を先頭から順番に ry 、ある文を翻訳した結果を続く文を翻訳する際にインプットに利用 ry
>> 、前の段落の文脈を捉え ry 、 RNNは文書のような連続する処理( ry )において非常に強力ですが、 ry
>> 、長い文章ではより多くの処理ステップと時間 ry 、またそれらの繰り返し構造は人工知能を適切に学習 ry 困難
>>
>> ry 対照的に、Transformerでは全ての単語またはシンボルを並列に処理しながら、セルフアテンションメカニズムを使用して、
>> 離れた位置の文章から文脈を組み込む ry 。並行して全ての単語を処理しつつ、
>> 複数の処理ステップにわたって各単語を文中の他の離れた単語の解釈時に入力情報とし ry 速く訓練
>>
>> ry 。しかしながら、より小さく構造化された言語を理解する作業、またはもっとシンプルな文字列のコピー( ry ) ry
>> 、トランスフォーマはあまりうまく ry 。対照的に、Neural GPUやNeural Turing Machineなどの既存 ry
>> は前述のようなシンプルなタスクでは上手く ry が、翻訳のような大規模な言語理解タスクでは上手く動作しません。
>>
>> ry Transformerを、斬新で効率的なparallel-in-time recurrenceを使用し、
>> 計算的に様々なタスクに応用できるチューリング完全なUniversal Transformersに拡張
>>
0275>>270垢版2018/09/16(日) 21:34:08.86ID:m2szPimC?2BP(0)

>> 2.Transformerをより汎用的にしたUniversal Transformer
>>
>> 以下、ai.googleblog.comより「Moving Beyond Translation with the Universal Transformer」の意訳です。
>>
>> 昨年、我々は既存の機械翻訳や、その他の自然言語を扱う既存 ry よりも顕著な成功 ry 機械学習モデルであるTransformer ry
>>
>> Transformer以前のニューラルネットワークに基づく機械翻訳アプローチの大半は、文章の先頭から順番に処理をしていました。
>> これはRNN ( ry ) ry 、RNNは文章を先頭から順番に ry 、ある文を翻訳した結果を続く文を翻訳する際にインプットに利用 ry
>> 、前の段落の文脈を捉え ry 、 RNNは文書のような連続する処理( ry )において非常に強力ですが、 ry
>> 、長い文章ではより多くの処理ステップと時間 ry 、またそれらの繰り返し構造は人工知能を適切に学習 ry 困難
>>
>> ry 対照的に、Transformerでは全ての単語またはシンボルを並列に処理しながら、セルフアテンションメカニズムを使用して、
>> 離れた位置の文章から文脈を組み込む ry 。並行して全ての単語を処理しつつ、
>> 複数の処理ステップにわたって各単語を文中の他の離れた単語の解釈時に入力情報とし ry 速く訓練
>>
>> ry 。しかしながら、より小さく構造化された言語を理解する作業、またはもっとシンプルな文字列のコピー( ry ) ry
>> 、トランスフォーマはあまりうまく ry 。対照的に、Neural GPUやNeural Turing Machineなどの既存 ry
>> は前述のようなシンプルなタスクでは上手く ry が、翻訳のような大規模な言語理解タスクでは上手く動作しません。
>>
>> ry Transformerを、斬新で効率的なparallel-in-time recurrenceを使用し、
>> 計算的に様々なタスクに応用できるチューリング完全なUniversal Transformersに拡張
>>
0276>>270垢版2018/09/16(日) 21:34:53.21ID:m2szPimC?2BP(0)

>> ry 訓練速度を維持するために並列構造を構築、Transformerの異なる変換関数を
>> 複数の parallel-in-time recurrentな変換関数に置き換えました。(下図のように同じ変換関数が、
>> 複数の処理ステップにわたって並列に、全てのシンボルに適用され、各ステップの出力が次のステップの入力に
>>
>> 重要なことは、RNNがシンボルを順次処理するケースで、Universal Transformerは全てのシンボルを
>> (Transformerのように)同時に処理します。しかし同時にUniversal Transformerはセルフアテンションを使用して
>> 平行に複数回、再帰的に反復処理を行い、 ry 解釈を改善します。このparallel- in-time recurrence ry は、
>> RNNで使用されている順次処理する再帰的メカニズムよりも高速であり、 ry 標準的なフィードフォワードTransformerより強力
>>
>> Universal Transformerは、セルフアテンションを使用して異なる位置からの情報を結合し、反復遷移関数を適用することによって、
>> シーケンスの各位置について一連のベクトル表現(h1〜hmとして示される)を繰り返して品質を向上します。矢印は操作間の依存関係
>>
>> 各ステップでは、オリジナルのTransformerと同様に、セルフアテンションを使用して、各シンボル
>> (例えば、文中の単語)から他の全てのシンボルに情報が伝達 ry 、この変換 ry (すなわち反復段階の数)は、
>> ry ( ry 、固定数または入力長に設定 ry )、またはUniversal Transformer自体によって動的に決定
>>
>> 後者の機能を実現するために、各位置に適応計算メカニズム ry
>> 、あいまいなシンボルやより多くの計算を必要とするシンボルに、より多くの処理ステップを割り当
>>
>> ry bankは、「銀行」、「土手」、「堤防」、「岸辺」、「海浜」、「塚」
>> :
>> 例えば単語「bank」 ry 厳密にするためにより多くの計算ステップ ry 追加的な文脈情報を統合
>>
0277>>270垢版2018/09/16(日) 21:36:28.00ID:m2szPimC?2BP(0)

>> ry 単一の関数を繰り返し適用する事が制限のように見えるかも ry
>> 、特に異なる機能に異なる関数を適用する標準のトランスフォーマーと比較した場合は。しかし、
>> 1つの関数を繰り返し適用する方法を学ぶことは、アプリケーションの数(処理ステップの数)が可変
>>
>> 、Universal T ry がより曖昧なシンボルに多くの計算 ry 以外に、モデルは、 ry 関数アプリケーションの数を増減するか、
>> トレーニング中に学習された他の特性に基づいて入力の任意の部分に改良を適用することがよくあります。
>> これにより、 ry 、入力のさまざまな部分に異なる変換 ry 効果的に学ぶことができ、理論的な意味でもより強力 ry
>> 。これは、標準のTransformerでは実行できない ry 。標準のTransformerでは学習済み変換ブロックが1回だけ
>>
>> ry 実証的なパフォーマンスにも気をつけています。 ry 文字列のコピーや逆順にソート、整数加算などを
>> TransformerやRNNよりはるかに上手に学ぶことができることを確認 ry 。さらに、多様な言語タスクを理解するために、
>> ry bAbI linguistic reasoning task とLAMBADA language modeling taskに挑戦し、最新のスコアを達成
>>
>> 、同じトレーニングデータで同じ方法で訓練された同じ数のパラメータを持つ従来のTransformerに対して、0.9 BLEUだけ翻訳品質を向上 ry
>> 、元のTransformerは昨年 ry 従来の機械翻訳モデルより2.0 BLEUのスコア改善 ry 、それに更に約50%の相対的な改善
>>
>> Universal T ry は、このように、「実用的なシーケンスモデル(機械翻訳などの大規模な言語理解モデル)」と
>> 「計算上ユニバーサルなモデル (Neural Turing MachineやNeural GPUなどの勾配降下法を使って
>> 任意のアルゴリズムを実行することができるモデル)」とのギャップを埋めます。
>>
0278>>270垢版2018/09/16(日) 21:37:07.19ID:m2szPimC?2BP(0)

>> 私達は、最近のparallel-in-time sequence modelsを開発して計算量と再帰処理の深さを高める事、及び、
>> ここで紹介した基本的なUniversal Transformerにさらなる改良を加えてより強力でよりデータ効率の良い学習アルゴリズムを構築する事、
>> それらが、現在の最先端技術を超えた学習アルゴリズムの一般化に繋がる事に情熱を燃やしています。
>> ここで紹介する ry さらなる改良が、より多くの学習アルゴリズムを構築するのに役立つことを願っています ry
>> 、現在の最先端技術を超えて一般化されています。
>>
>> 、Universal Transformerの学習と評価に使用されるコードは、オープンソースとしてTensor2Tensorリポジトリ
>>
>> 謝辞
>> この研究は、Mostafa Dehghani、Stephan Gouws、Oriol Vinyals、Jakob Uszkoreit、および?ukaszKaiserによって行われました。
>> 実り多いコメントとインスピレーションのため、Ashish Vaswani、Douglas Eck、David Dohanに感謝します。
>> 3. ry 感想
>>
>> やっている事自体は人間が翻訳時に無意識にやっている事の真似で「曖昧な単語について前後の文脈を見て何度も意味を推測する。
>> 曖昧でない単語は特に注目せずにさっと翻訳する」だけの話なのですが、それを実現している所が凄いですね。
>>
>>「チューリング完全」 ry 、応用範囲が一気に広が
>> 4. ry まとめ
>>
>> 1)ai.googleblog.com
>> Moving Beyond Translation with the Universal Transformer
>>
>> 2)arxiv.org
>> Universal Transformers
>>
>> 3)github.com
>> universal_transformer.py
>>
>>
>>
>>
0280>>272-276垢版2018/09/16(日) 21:39:28.50ID:m2szPimC?2BP(0)

>>> 183 名前:yamaguti E-mail:1427220599/490sage492 投稿日:2018/06/25(月) 02:58:02.57 ID:wuqwxjPG?2BP(0)
>> :
>>>>> 182 >>178-179 >>114 ( 一形態 : 物理空間融合レンダ 仮想空間融合レンダ 意味空間融合レンダ 人格システム )
>>>> DeepMind : DNC のスロットベーススロットをスロットに見立てる等 ( 下手すれば 2018 年にも目鼻 )
>>>> 目鼻 → 1 年以内 ? 一まずの変革完了 ( ≒ 曲りなり特異点 ? ) → 1 年以内 ? 接地構造手直し完了 ( ≒ 特異点 ? )
>>>>>> 178 3D ゲーム環境内疑似コマンド限定接地
>>> ↓
>>> GQN : 現実 3D 空間対応基盤 (
>> :
>>
>>
>>> 、計算的に様々なタスクに応用できるチューリング完全なUniversal Transformers
>> 汎用
>>
>>
>>
0282>>272-276垢版2018/09/16(日) 21:42:41.84ID:m2szPimC?2BP(0)

>>> 、Transformerでは全ての単語またはシンボルを並列に処理しながら、 ry 、離れた位置の文章から文脈を組み込む ry 。
>> ry 処理しつつ、複数の処理ステップにわたって各単語を文中の他の離れた単語の解釈時に入力情報とし ry 速く訓練
>> :
>>> ry Transformerを、斬新で効率的なparallel-in-time recurrenceを使用し、
>> 計算的に様々なタスクに応用できるチューリング完全なUniversal Transformersに拡張
>>
>>
>>> 145 yamaguti~貸 171005 1350 Mw10xW3l? \>482 yamaguti~貸 170923 1906 gJe8GJca? \>182 yamaguti 180617 0148 GMgC8zpV?
>>> :
>>>> 631 yamaguti~貸 170925 0009 mWACkEZG?
>> :
>>>>>> 482 自然言語解釈
>>>>>>> 479 >>241 >255
>>>>> DeepMind 又カーネギーメロン大が最近達成した
>>>>> 3D ゲーム環境内疑似コマンド限定接地の仕組を多重化すれば可能 ( 強力版弱い AI )
>>>>>
>>>>> DeepMind : DNC のスロットベーススロットをスロットに見立てる等 ( 下手すれば 2018 年にも目鼻 )
>> :
>>
>>> 178 yamaguti 180528 1227 x4HB0Rxw?
>>>>> 145 メタ
>>>>>> DeepMind 又カーネギーメロン大が最近達成した
>>>>>> 3D ゲーム環境内疑似コマンド限定接地の仕組を多重化すれば可能 ( 強力版弱い AI )
>>>>>>
>>>>>> DeepMind : DNC のスロットベーススロットをスロットに見立てる等 ( 下手すれば 2018 年にも目鼻 )
>> :
>>
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況