タグ

OptimizationとDevに関するnminoruのブックマーク (3)

  • Data Prefetch Support - GNU Project

    Contents Introduction Elements of Data Prefetch Support Locality Read or Write Access Size of block to access Base update Faulting v. Non-faulting Miscellaneous Features Guidelines for Prefetching Data Data Prefetch Support on GCC Targets Summary 3DNow! Alpha AltiVec IA-32 SSE IA-64 MIPS MMIX PA-RISC PowerPC SuperH SPARC XScale References Introduction The framework for data prefetch in GCC support

  • AltiVecは本当に速いのか?

    Mac OS XのG4以降で使用できる「AltiVec」で数値演算の高速化を行います。 AltiVecがどのようなことを得意としているのか、なども調べてみました。 AltiVecとは? モトローラのCPU「PowerPC G4」にて、整数・および浮動小数点操作をハードウェアにて処理する命令セットを「AltiVec」といいます。 並列で処理するベクトル演算などを得意とします。「VelocityEngine」とも呼ばれています。 AltiVecは、128ビットのデータを一括して処理することができます。 1つのfloatの浮動小数点値は32ビットですので、float型なら最大4つ(128/32=4)のデータを同時にこなすことができる、ということになります。 いろいろテストして見た結果、「Mac OS Xは、Windowsよりも遅い」です。 これは、実際にテストしてみたりアプリを作って調べたりした

  • advanced optimization FPU

    FPUレジスタは通常の汎用レジスタと違って8個まで値を格納できるスタック形式です. スタックトップをstと書き, 以下st(1),st(2),...st(7)と表記します. スタック形式なので, 通常はメモリから直接st(i) (i>0) に読み込むことは出来ません. メモリの値を一端stにpush (読み込み) してからst(i)に移します. 9個以上pushすると例外が発生するので注意します. 不要になった値はstから順にpopして消去します. レジスタの値をメモリに書き込む時も同様で, 通常はstの値だけしか書き込めません. 尚, 汎用レジスタと違ってFPU命令には即値モードはありません. 全てアドレスを指定して値のやり取りをします.

  • 1