本書の記載内容について訂正があります。
こちらを参照してください。
近年においてソフトウェアエンジニアがハードウェアのアーキテクチャを意識する機会は減りました。それは悪いことではないでしょう。ソフトウェアエンジニアがハードウェアを意識していては、開発したソフトウェアはハードウェア依存となりポータビリティやスケーラビリティなどを失ってしまいます。
しかしながら、Wall Timeにシビアなソフトウェアや計算量が大きなソフトウェアを開発する場合、ハードウェアのアーキテクチャを意識したプログラミングを行うと、性能が格段に向上する場合があります。時代が変わりCPU性能が大幅に向上しましたが、同時に多くの計算量を要求するソフトウェアも存在します。このため、アプリケーション開発エンジニアであっても、ハードウェアのアーキテクチャを意識せざるを得ない場面に遭遇します。
本書は、SIMD命令、特にAVX命令にフォーカスして企画された書籍です。SSE命令の解説本は散見されますが、AVX命令の解説は多くありません。本書の特徴はAVX命令にフォーカスし、図を用いてわかりやすい解説、そして簡単なプログラムサンプルから、フィルタのサンプルまで各種の例題を用いてAVX命令の理解を深めます。これによってAVX命令を興味深く学習できるでしょう。
本書の対象読者は,以下のような人を対象としています。
・SIMDを理解したい人
・AVX命令を理解したい人
・AVX命令をサンプルプログラムで理解したい人
・高性能なプログラムを開発したい人
本書を参考にAVX命令を理解し、高性能なプログラムの開発に役立ててください。微力ながら本書が学習の助けになれば幸いです。
本文の内容に誤りがありました。 お詫びして訂正いたします。
誤
03avxInstructions/01load/02storeu
正
03avxInstructions/02store/02storeu
誤
03avxInstructions/01load/03stream
正
03avxInstructions/02store/03stream
誤
03avxInstructions/01load/04maskstore
正
03avxInstructions/02store/04maskstore
誤
03avxInstructions/02store/05hsub
正
03avxInstructions/03arithmetic/05hsub
誤
07 2D/02filter/01grayscale/main.cpp
正
07 2D/02filter/01grayscale/pgm/main.cpp
誤
07 2D/02filter/01grayscale/avxGrayFloat.cpp
正
07 2D/02filter/01grayscale/pgm/avxGrayFloat.cpp