以前、で線形代数を実行し始めたとき、他の多くのライブラリの土台であるにもかかわらず、やその他の基本的なのC
チュートリアルが非常に少ないことに驚きました。そのために私はインターネット上で、私はすべてを見つけることができるすべての例/チュートリアルを集め始め、、、、、、...におけるこのGithubのレポ。BLAS
LAPACK
API
BLAS
CBLAS
LAPACK
CLAPACK
LAPACKE
ATLAS
OpenBLAS
まあ、私は機械エンジニアとしてそのようなgitリポジトリやGitHubを管理した経験がほとんどないことを警告しておきます。それはあなたたちにとって最初は完全に混乱しているように見えます。しかし、厄介な構造をうまく乗り越えることができれば、助けになるかもしれないあらゆる種類の例と指示を見つけるでしょう。それらがコンパイルされることを確認するために、それらのほとんどを試しました。そして、私が言及したコンパイルしないもの。それらの多くをGNU compilers
(gcc
、g++
およびgfortran
)でコンパイルできるように変更しました。私が作ったMakeFile
、あなたが個々呼び出すことができる方法を学ぶために読むことができるのFortran/FORTRAN
でルーチンをC
またはC++
プログラムを。また、MacとLinuxのインストール手順もいくつか記載しています(Windowsの人はごめんなさい!)。私もいくつか作りましたbash
.sh
これらのライブラリの一部を自動コンパイルするためのファイル。
しかし、あなたの他の質問に行きます:BLAS
そしてLAPACK
、むしろAPI
特定SDK
のものではありません。これらは、実装やライブラリではなく、仕様または言語拡張のリストにすぎません。言ったことで、そこで元の実装であるにNetlibでFORTRAN 77
ほとんどの人が(紛らわしい!)を参照してくださいについて話すときは、BLAS
とLAPACK
。したがって、これらAPI
のを使用しているときに多くの奇妙なことが見られるのは、ライブラリや関数FORTRAN
でC
はなく実際にルーチンを呼び出しているためですC
。ATLAS
そして、OpenBLAS
の最高の実装のいくつかであるBLAS
とLACPACK
私の知る限り。彼らは元のAPI
に準拠していますが、実装されている私の知識には準拠していますC/C++
ゼロから(わからない!)GPGPU実装がありますAPI
使用してねOpenCL
:CLBlast、clBLAS、clMAGMA、ArrayFireとViennaCLをいくつかに言及することは。特定のハードウェアまたはプラットフォーム用に最適化されたベンダー固有の実装もあり、それらを使用することは誰にも推奨しません。
使用して学びたい人に私の推薦BLAS
とLAPACK
でC
学ぶことであるFORTRAN-C
第1の混合プログラミングを。言及されたレポの最初の章はこの問題に捧げられており、そこで多くの異なる例を集めました。
PS私は時々リポジトリのdevブランチに取り組んできました。少し面倒くさいようです!