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%程度の消費電力削減に成功,という論文