Contents

  • このサイトについて
  • BLASとは
  • インストール
  • 使い方概略

このサイトについて

このサイトは、もともとサイトの作者(工学系修士)が研究中にBLASの使い方についてのわかりやすい日本語ソースが殆どなかったことをきっかけとして、備忘録代わりに作成したものです。そのため、このサイトの信憑性はその程度のものとして、自己責任でご利用をいただきますようお願い致します。このサイトは、その程度のレベルでしか記載されておりませんので、仮に誤りがあったことで損失などを被った場合においても一切の責任を負いません。
なお、作者はその後、誤りを幾つか発見し、数年間放置するといったことも平気でやっておりますのでご注意ください。
余談ながら、このサイトは春から夏にかけてはアクセス数が少なく、秋から急激に伸び始める傾向にあります。なお、筆者としては、実装等の実験は精神衛生上のためにも早期に着手されることを推奨するものです。

BLASとは

BLASとは、Basic Linear Algebra Subprogramsの略です。難しく言うと、基本的な線形演算のライブラリ、簡単にいえば、行列やベクトルの基本的な計算をやってくれる関数群です。例えば、行列の積とか、ベクトルのノルムの計算、などです。これらの計算を実装すること(車輪の再開発)はやめて、ライブラリを使い、効率よく効率のよいコーディングを行いましょう、というのが趣旨です。
なお、このサイトでは、C言語(かC++)からFORTRANのルーチンを直に呼び出す方法で記述します。C言語用インターフェースCBLASもありますが、ほとんど内容が同じなので、割愛します。
ちなみに、C++のライブラリboost::numeric::ublas (UBLAS) については、全くの別物です。
AboutBLAS

インストール

BLASにはいくつか種類があります。そのなかでも、高速に動作すると言われているのが、GotoBLASとATLASです。(あと、IntelMKLというものもありますが、有償、というかかなりお高いそうで)。GotoBLASとATLASは無償でソースコードを配布しています。これを入手してmakeすれば使用可能になります。

詳しいインストール方法

使い方概略

BLASはFORTRANで書かれております。ですので、ルーチンを呼び出すときに若干注意が必要になります。このサイトでは、C言語からFORTRANのルーチンを直に呼び出すやり方を書いていきますので、注意が必要です。具体的には、全ての引数をポインタで渡さなくてはいけません。また、行列の並べ方の解釈が異なり、行列を転置して扱っているかのように見えます
使い方概略