• 検索結果がありません。

多様なアクセスパターンに適応するアクセラレータ向けメモリアクセス機構

N/A
N/A
Protected

Academic year: 2021

シェア "多様なアクセスパターンに適応するアクセラレータ向けメモリアクセス機構"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)Vol.2012-ARC-199 No.15 2012/3/28. 情報処理学会研究報告 IPSJ SIG Technical Report. に対して柔軟に対応できない.その結果,後続段へのデータ供給に多くのデータパスが必要 となり,大規模演算器アレイの実現を困難としている2) .問題を解決するに,本稿では,多. 多様なアクセスパターンに適応する アクセラレータ向けメモリアクセス機構 王. 昊†1. 姚. 駿†1. 中 島 康. 様なメモリアクセスを実現する EMAX を提案する.EMAX は,プログラムのメモリアク セスパターンを考慮した上で,分散配置した中容量のキャッシュメモリを分割し,シフトレ ジスタと組み合わせることで,メモリデータを演算器に供給するためのデータパスを大幅に 削減する.また,同一プログラムであっても,LAPP と比較して,最内ループの命令列を. 彦†1. 削減し,演算器アレイの段数を削減できる.以降,2 章では LAPP におけるメモリアクセ ス機構及び問題点について詳述する.3 章では,2 章で述べる問題を解決する手法として新. 我々は,画像処理や科学技術計算に向けの線形アレイ型アクセラレータ LAPP(Linear Array Pipeline Processor)を提案している.LAPP は最内ループの命令列を マップ機構により演算器アレイに写像する手法を用いて,プログラムを高速実行でき る.しかし,LAPP は様々なプログラムにおける多様なメモリアクセスパターンに柔 軟に対応できないという問題ある.また,演算器アレイの規模に比例して,メモリデー タを演算器に供給するためのデータパスが増加してしまう.本稿では,多様なメモリ アクセスを実現する EMAX(Energy-aware Multi-mode Accelerator eXtension) を提案する.EMAX は,プログラムのメモリアクセスパターンを考慮した上で,分 散配置した中容量のキャッシュメモリを分割し,シフトレジスタと組み合わせること で,物理的にはシングルポートメモリでありながら,論理的には多ポートメモリを実 現する.本提案メモリアクセス機構により,メモリデータを演算器に供給するための データパスを大幅に削減するだけでなく,同一プログラムであっても,LAPP と比較 して,最内ループの命令列を削減し,演算器アレイの段数を削減できるため,更に高 性能と低電力な新型演算器アレイアクセラレータを実現できると考えられる.. 型メモリアクセス機構を提案する.4 章では評価結果を述べる.5 章を本稿のむすびとする.. 2. LAPP 本章では,LAPP のメモリアクセス構造及び問題点について詳述する.図 1 に LAPP の /*sample program1*/ int a[N]; //source int c[N]; //result for(i=0;i<=N;i++){ c[i]=a[i]+a[i+1]+a[i+2] }. /*sample program2*/ int a[N], x[N], y[N], z[N];//source int c[N]; //result for(i=0;i<=N;i++){ c[i]=a[i]+a[i+1]+a[i+2]+x[i]+y[i]+z[i]; }. Data prop Reg. 1. は じ め に. LSU. L0$. EXEC. LSU. L0$. EXEC. LSU. L0$. EXEC. LSU. L0$. EXEC. .... LSU. L0$. EXEC. LSU. L0$. L1$. way0 ... way3. L2$. 近年,プロセッサにおける動作周波数と回路面積の増加に伴い,消費電力の問題がプロセッ サ発展の壁になる.問題の解としては,我々は高性能かつ低電力を実現する線形アレイ型ア クセラレータ LAPP を提案している.LAPP は高い命令レベル並列性を利用する VLIW プ ロセッサの演算器部分を線形に拡張し,複数段を連結する構造である.画像処理などの命令. Main memory. EXEC. レベル並列性が高いプログラムにおける最内ループの命令列をマップ機構により,1 対 1 で 演算器アレイに写像して並列実行することで,高性能を実現する1) .しかし,LAPP は様々 なプログラムにおける多様なメモリアクセスパターンに,従来 VLIW プロセッサと同様の メモリアクセス機構を複数段用意することで処理するため,多様なメモリアクセスパターン. †1 奈良先端科学技術大学院大学 Nara Institute of Science and Technology. L1$. way4 ... way7. 図 1 Execution and memory structure of LAPP. 1. c 2012 Information Processing Society of Japan ⃝.

(2) Vol.2012-ARC-199 No.15 2012/3/28. 情報処理学会研究報告 IPSJ SIG Technical Report. メモリアクセス機構を示す.LAPP のメモリアクセス機構は演算器(EXEC),1 次データ. 3.1 EMAX の仕組み. キャッシュ(L1$),ローカルバッファ(L0$),ロード・ストアユニット(LSU)及び,1. 前述の通り,任意段でメモリを参照できるために,LAPP ではローカルバッファを各段. 次データキャッシュからローカルバッファへデータを伝搬するためのデータ伝搬レジスタ. に設置して毎サイクル次段へデータを転送する.そのデータの伝搬に使うデータパスを削減. (Data Prop Reg)から構成される.そして,1 次データキャッシュを 4 ウェイに分割して. するために,EMAX では 4 段毎に 1 次データキャッシュを設け,1 次データキャッシュのあ. 使用する.ウェイ 1,2,3 の 3 つのウェイがデータの読み出し専用ウェイであり,ウェイ. る段のみでロード命令の実行を可能にする.図 2 に EMAX のメモリシステムを示す.1 次. 0 は読み出しと書き込みの両方に使うウェイである.ここで,1 ウェイが 1 つの配列に対応. データキャッシュに単一のウェイを搭載し,4 つのブロック(blk0,blk1,blk2,blk3)に. する.各段においてロード命令を実行するため,1 次データキャッシュの代わりに,各段に. 分割して使用する.1 つのベースアドレス(BASE-AD)と 6 つのオフセットを組み合わせ. ローカルバッファを配置する.高速実行中は,毎サイクル各ウェイから 1 ワードのデータを. ることにより,6 箇所のアドレスを同時に参照できる.1 次データキャッシュからロードし. 読み出し,同時に 3 ワードのデータを次段のデータ伝搬レジスタへ転送しながら,ローカ. たデータをセレクタ(SEL)によって選択し,シフトレジスタの先頭に書き込む.次のサイ. ルバッファに取り込むことにより,あらかじめ決められたメモリアドレス範囲のデータをラ. クルから,データが順にシフトレジスタに流れる.そして,アドレス計算ユニット(EAG). ンダムに参照することができる.また,任意段においてストア命令を実行するために,各. と出力レジスタが 1 対 1 に対応し,EAG からのアドレス情報を比較する機構によって,シ. 段にそれぞれ 1 ワードのストアバッファを設置する.ストアデータを順に次段へ伝搬させ,. フトレジスタから出力レジスタへデータを転送する.以上により,使用可能なアドレス範囲. 最終段のストアバッファから 1 次データキャッシュに演算結果を書き出す.演算器段数を超. に制約を設けた上で,物理的に読み出しに 1 ポート,書き込みに 1 ポートを備える一般的な. える長い命令列からなるループカーネルに対しては,マップできるように演算器段数を増設. メモリを用い,6 リード,2 ライトのメモリ機能を実現できる.各段にローカルバッファが. することになる.演算器段数の増加に伴い,ローカルバッファの容量を増加させる必要があ. なく,1 次データキャッシュから読み出したデータを後続段に伝搬させるデータパスは不要. る.先行研究では,ローカルバッファの容量の増加が,クリティカルパスに影響することを. となるため,段間配線数を大幅に削減できる.そして,中容量バッファの配置により,様々. 報告している3) .その結果,多様なメモリアクセスパターンに対して,柔軟に対応できなく. なプログラムに対して,柔軟に対応できるという特性を持ち,必要な演算器段数が LAPP. なり,後続段へ伝搬すべきデータが多く,必要な演算器段数が増加する,その結果,回路面. よりも少なくなる.. 積や消費電力に影響を与えることになってしまう.例として,図 1 にサンプルプログラムを 示す.まず,プログラム 1 は,配列 a のエレメントの加算した結果を配列 c にストアする. ここで,ウェイ 1 が配列 a に対応し,ウェイ 0 が配列 c に対応する.演算した結果を後続. BASE AD. 段へ伝搬させ,4 段目でウェイ 0 に書き戻す.それに対して,サンプルプログラム 2 は,配 #imm. 列 a,x,y,z のエレメントを加算して,結果を配列 c にストアする.ウェイ 0 は配列 c に 対応し,ウェイ 1,2,3,4 はそれぞれ配列 a,x,y,z に対応する.演算した結果を後続. #imm. EAG5. #imm. EAG4. #imm. EAG3. #imm. EAG2. #imm. EAG1. EAG0. 段へ伝搬して,8 段目でウェイ 0 に書き戻す.2 つのサンプルプログラムの実行を比較する と,ロード命令の増加に伴い,必要な演算器段数を増加し,後続段へのデータの伝搬のため blk3. に消費電力も増える.. blk2. blk1. 3. EMAX. blk0. SEL. SEL. 本章では,多様なメモリアクセスパターンを考慮して,LAPP の段間配線数及び命令マッ. shift register. プに必要な演算器段数を削減するために,新しいメモリアクセス機構である EMAX を提案. O5. する.. O4. 図2. 2. SEL shift register. O3. O2. O1. O0. Memory structure of EMAX. c 2012 Information Processing Society of Japan ⃝.

(3) Vol.2012-ARC-199 No.15 2012/3/28. 情報処理学会研究報告 IPSJ SIG Technical Report. int a[N],b[N]; //source; a[0]... a[2N/4]... b[0]... b[2N/4]... int c[N]; //result; b[2N/4] b[N] a[2N/4] a[N] for(i=0;i<N;i++){ L1$ blk3 blk2 blk1 blk0 c[i]=a[i]+a[i+1]+a[i+2] a[N] +b[i]+b[i+1]+b[i+2]; } cc n-1 cc n cc n+1 cc n-1 cc n cc n+1. 3.2 メモリアクセス 本節では,サンプルプログラムを用いて 5 つのメモリ参照パターンについて EMAX での 動作を説明する. パターン 1:A + x. 固定のベースアドレスと広範囲のオフセットで示したメモリ領域に対してランダムに参照. a[0]. a[1]. a[2]. 供給し,各々から読み出した値をセレクタでアドレスの上位ビットにより選択して出力する.. O5. O4. パターン 2:A − 3,A − 2,A − 1,A.. a[i] a[i+1] a[i+2]. するパターンである.図 2 において EAG0 からのアドレスを way0.blk0 及び way0.blk1 に. 図4. 図 3 のサンプルプログラムは,単調増加するベースアドレス a[i] に,前後 4 箇所の範囲. a[3] a[4]. b[0]. O3. b[1]. b[2]. b[3]. O2. O1. O0. b[4]. b[i] b[i+1] b[i+2]. Example of Pattern 3 and its accessing.. 制限をつけて,固定オフセット(+0,+1,+2,+3)で,同時に 4 箇所を参照するパター. int a[N]; //source; a[0]... a[N/4]... a[N/2]... a[3N/4]... int c[N]; //result; a[N/4] a[N/2] a[3N/4] a[N] for(i=0;i<N;i++){ L1$ blk3 blk2 blk1 blk0 c[i]=a[i]+a[i+3]+a[i+1] a[N] +2*a[i+2]+a[i+4]; d[i]=a[i+1]+a[i+2] cc n-1 cc n cc n+1 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] +a[i+3]+a[a+4] }. ンである.EAG0 から提供したアドレスにより,way0.blk0 と way0.blk1 から読み出した データをシフトレジスタに流しこむ.ベースアドレスの単調増加と共に,4 箇所のアドレス も単調増加するので,アドレス情報の比較が不要になり,シフトレジスタの内容を直接出力 レジスタへ転送する.そして,次のサイクルから,データをシフトレジスタに流しながら, 出力レジスタの内容が更新され.図 3 の例のように,クロックサイクル(CC)n − 1 に,4 つのエレメント a[0],a[1],a[2],a[3] がシフトレジスタから,出力レジスタへ転送される. 次の CCn には,シフトレジスタの内容の更新につれて,a[1],a[2],a[3],a[4] を出力レジ. O5 a[i]. スタに転送する. パターン 3:A − 2,A − 1,A,B − 2,B − 1,B .. 図5. O4 O3 O2 O1 O0 a[i+3] a[i+1] a[i+2] a[i+2] a[i+4]. Example of Pattern 4 and its accessing.. 図 4 のサンプルプログラムは,1 つのウェイに 2 つの配列をプリフェッチして,パター ン 2 と同様に,前後 3 箇所に制限をつけて,同時に 2 つの配列を参照するパターンである.. 供給し,各々way0 の blk0,blk1 と way0 の blk2,blk3 に参照する.パターン 2 のように,. blk0 と blk1 は配列 a,blk2 と blk3 は配列 b に対応する.EAG0 と EAG3 からアドレスを. 読み出したデータをシフトレジスタに流しこむと共に,出力レジスタの内容を更新する. パターン 4:A − a,A − b,A − c,A − d,A − e,A.. a[0]... a[N/4]...a[N/2]... a[3N/4]... a[N/4] a[N/2] a[3N/4] a[N] int a[N]; //resource; int c[N]; //result; for(i=0;i<N;i++){ c[i]=a[i]+a[i+1]+a[i+2]+a[i+3]; } O5. blk3. blk2. CC n-1 a[0] a[1] O4. O3 a[i]. blk1 CC n a[2] a[3]. blk0. a[4]. 図 5 のサンプルプログラムは,単調増加するベースアドレス A に,近傍 5 箇所の範囲制 限をつけて,同時に 6 箇所を参照するパターンである.way0 が配列 a に対応する.CCn. L1$ a[N]. に,ベースアドレスを way0 の blk0 と blk1 に供給して,シフトレジスタの先頭に書き込 む.各 EAG がアドレス計算した結果をアドレス情報比較機構によって,シフトレジスタの. CC n+1 a[5]. 任意の位置と比較して,一致した部分のレジスタの内容を,対応する出力レジスタに書き込 み.次の CC から,シフトレジスタにデータを流しながら,出力レジスタの内容も更新す る.更に,d[i] の計算に,データを移動する代わりに,命令マップ位置を変化させることに. O2 O1 O0 a[i+1] a[i+2] a[i+3]. よって,データ移動に伴う電力や時間を削減することができる. パターン 5:A − 2,A − 1,A,B ,C ,D.. 図 3 Example of Pattern 2 and its accessing.. 3. c 2012 Information Processing Society of Japan ⃝.

(4) Vol.2012-ARC-199 No.15 2012/3/28. O5 x[i]. O4 y[i]. O3 z[i]. O2 a[i]. un. 22 20. tu ne. test program. O1 O0 a[i+1] a[i+3]. ex. 26 20. cc n+1 a[4]. 33 15. cc n a[2] a[3]. 34 20. cc n-1 a[0] a[1]. 27 20. blk0. EMAX. 29 20. blk1. LAPP. 16. blk2. 35 30 25 20 15 10 5 0. bb. bl. 10. a[0]... a[N]. 33 16. z[0]... z[N]. 21 20. y[0]... y[N]. 32 20. int a[N],x[N],y[N],z[N] //source; x[0]... int c[N]; //result; x[N] for(i=0;i<N;i++){ blk3 c[i]=x[i]+y[i]+z[i] +a[i]+a[i+2]+a[i+3]; }. Stages of instruction map. 情報処理学会研究報告 IPSJ SIG Technical Report. ho _c. ur. ho. ka. ve. n1. ho. ka. n2. ka. n3. pa nd. 4k. m. sh. ar. p. gr id. wd. ifli. ne. lu. r. ur. 図 7 Instruction number of loop kernel in LAPP and EMAX. 図 6 Example of Pattern 5 and its accessing.. 図 6 のサンプルプログラムでは,4 つの配列を処理する.まず,配列 a に対して,ベース. 組み合わせることにより,一定範囲のメモリ空間に対する多数のロード命令実行が可能とな. アドレスが単調増加し,前後含む 3 箇所のアドレス範囲制限をつけ,3 箇所を同時にランダ. るメモリアクセス機構(EMAX)を提案した.先行研究である LAPP と比較して,後続段. ム参照するパターンである.単調増加するベースアドレスを way0.blk0 のみ供給し,シフ. への伝搬データパスが不要となることに加え,同一処理においてループカーネル内の命令数. トレジスタの先頭に流し込む,EAG2 と EAG5 から供給されたアドレス計算の結果がアド. を削減でき,演算器段数と段間配線数の削減できる.その結果,電力効率と演算性能を向上. レス情報比較機構によって,シフトレジスタの任意の位置を比較する,一致した部分のレジ. させることが期待できる.. スタの内容を対応する出力レジスタに書き込む.配列 x,y,z は,ベースアドレスが単調増. 6. 謝. 加する配列であり,way0 の blk1,blk2,blk3 に 1 対 1 対応する,EAG1,EAG3,EAG4 からアドレスを供給し,blk1,blk2,blk3 を参照して,読み出したデータを直接出力レジ. 辞. なお,本研究の一部は先端的低炭素化技術開発(次世代低電力デバイス安定化計算機構成. スタに転送する.. 方式),科学研究費補助金(若手研究(B)課題番号 23700060)及び JST-ASTEP(FS 課 題番号 AS232Z02313A)による.. 4. 評 価 結 果. 参 考. 本章では,LAPP と EMAX において,同一処理のベンチマークプログラムにおけるルー. 文. 献. 1) Kazuhiro Yoshimura, Takuya Iwakami, Takashi Nakada, Jun Yao, Hajime Shimada, Yasuhiko Nakashima: “An Instruction Mapping Scheme for FU Array Accelerator”, IEICE Transactions on Information and Systems, Vol. E94-D, No. 2, pp. 286–297, 2011. 2) 森高晃大,下岡俊介,吉村和浩,姚 駿,中田 尚,中島康彦: “大規模演算器アクセ ラレータのための複数 FPGA 連結手法”, デザインガイア 2011, pp. 9–14, 2011. 3) 下岡俊介, 吉村和浩, 中田 尚, 中島康彦: “演算器アレイ型アクセラレータにおける ローカルバッファの最適化”, 2011 年並列/分散/協調処理に関する『鹿児島』サマー・ ワークショップ (SWoPP 鹿児島 2011), 情報処理学会研究報告 2011-196(18), pp. 1–6, 2011.. プカーネル内の命令数を比較する.LAPP と EMAX ともにループカーネル内の VLIW 命 令数が必要な段数と等しくなる.結果を図 7 に示す.今回使用したベンチマーク 10 個のうち. 9 個において,EMAX が LAPP よりも少ない命令数となることがわかった.特に wdifline では,命令数を 50%に削減できており,段数を大幅に削減できることがわかった.今後は, 他のベンチマークプログラムについても命令数の比較を行い,さらなる評価を行う予定で ある.. 5. む す び 本研究は,複数中容量バッファを分散配置させ,中容量メモリと小容量シフトレジスタの. 4. c 2012 Information Processing Society of Japan ⃝.

(5)

図 2 Memory structure of EMAX
図 4 Example of Pattern 3 and its accessing.
図 6 Example of Pattern 5 and its accessing.

参照

関連したドキュメント

まずフォンノイマン環は,普通とは異なる「長さ」を持っています. (知っている人に向け て書けば, B

 我が国における肝硬変の原因としては,C型 やB型といった肝炎ウイルスによるものが最も 多い(図

コロナ禍がもたらしている機運と生物多様性 ポスト 生物多様性枠組の策定に向けて コラム お台場の水質改善の試み. 第

はじめに

交付の日から90日(特別管 理産業廃棄物は60日)以内 に運搬・処分終了票の送付を 受けないときは30日以内に

~自動車の環境・エネルギー対策として~.. 【ハイブリッド】 トランスミッション等に

第1章 生物多様性とは 第2章 東京における生物多様性の現状と課題 第3章 東京の将来像 ( 案 ) 資料編第4章 将来像の実現に向けた

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に