トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2009-7-22

データ解析

研究室のUさんの仕事を頻繁に邪魔しながら,
シミュレーション結果のデータ解析.

CRubyとJRuby

MacOSX 10.5.7のCRuby(ruby 1.8.6)と,JRuby 1.3.1の話

p "\000\000\000\001".unpack("I*")
p "\001\000\000\000".unpack("I*")

を,CRubyで実行すると,

[16777216]
[1]

JRubyで実行すると,

[1]
[16777216]

になる.エンディアンの違いなのね.
ソース/ディスティネーションに対応したエンディアンでpack/unpackするときは

* n: big endian unsigned 16bit
* N: big endian unsigned 32bit
* v: little endian unsigned 16bit
* V: little endian unsigned 32bit

を使うのね.
ちゃんと注意事項としてpackテンプレート文字列に書いてあった.


Harnessing Horizontal Parallelism and Vertical Instruction Packing of Programs to Improve System Overall Efficiency

[論文読み]
DATE'08
「どこかで話を聞いてきた」と,K先生が紹介してくださったので読んでみた.
IRFとVLIWを組み合わせて,性能を落とさずに消費電力を削減したという話.
ちなみに紹介された方の論文は,

"Orchestrating Horizontal Parallelelism and Vertical Instruction
Packing of Programs to Improve System Overall Efficiency"
Hai Lin, Yunsi Fei
IEEE TRANSACTIONS ON COMPUTERS, VOL.58, NO.7 JULY 2009


MISA - 複数のIRF中のエントリへのインデックスを持つ
IDステージの前半で,IRFな実命令に対応づけられる
コードサイズ削減/フェッチのエネルギー節約

VLIWにIRFを実装する
(1)VLIW命令をそのままパックする.手間は一緒だけど柔軟性がない
(2)各インストラクションスロット毎に解析/パックする.

(2)がいいのだけど,VLIWの命令スケジューリングがこわれちゃうのでISAに

  • PISA
  • SISA

を導入してスケジューリング.
結果,約70%程度の消費電力削減に成功,という論文