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