ARM用のLAPACKをビルドしてみます。ARM用gccを作るときにfortranを有効にした目的はこれだったのだよ。ここからは参考になるサイトは多分ないだろう。約50年前に作られたこれ(LAPACK)をARMで動かすっていうロマン...(?)
LAPACKはnetlibからとってくる(LAPACKに必要なBLASはLAPACKのソースに入っているのでLAPACKだけとってくればよい)。ここもず~っと変わっとらんのー。昔(2004~2007年くらい)、とあるデバイスを設計するためのシミュレータをBorland C++ Builderで作ったときに使いました。
では、lapack-3.9.1.tar.gz を、/home/hoge/work/src にコピーまでしたっていう前提で。やってみよー。
cd /home/hoge/work/src
tar zxvf lapack-3.9.1.tar.gz
cd lapack-3.9.1
make.inc.exampleってやつがlapack-3.9.1フォルダにできているので、実際に使うためにこれをコピーする。
cp make.inc.example make.inc
で、ここで、Linuxユーザならvim make.incっていくんでしょうが、Windowsに長年侵された落人ならエクスプローラからで\\wsl$を開いて掘っていって、何かGUIのエディタで編集する。
gcc --> arm-none-eabi-gcc
gfortran --> arm-none-eabi-gfortran
ar --> arm-none-eabi-ar
ranlib --> arm-none-eabi-ranlib
に変える。
きっと、できるバイナリはARM用なのでTESTは動かないとおもうので、ライブラリを作るところまでやる。
で、
make blaslib
おぉーarm-none-eabi-gfortranでコンパイルが進んでいくー。で、librefblas.aができたよー。
もう、がんがんやっちゃう。C言語用のインターフェースも要るので、CBLASとLAPACKEもやっちゃう
make cblaslib
make lapacklib
make lapackelib
で、
libcblas.a
liblapack.a
liblapacke.a
librefblas.a
できたよー。
さて、どう使うのか、、、また後日使ってみた編があるかもしれないしないかもしれない。
むかしはLAPACKにしてもMKLにしても情報が少なくて難儀した。Windows環境でLAPACKをビルドする情報なんてほとんどなかった(今回はDebianなのでWindows環境ではないけど)。きっと今ならMinGWとかであっさりできるんだろうなー。まぁそんなことしなくてもGNU Octaveとかについてくるから使い方だけわかればいいし。で昔もf2cはあったので、ごっそりCに変えて、C++ BuilderにProject作ってちまちまエラーをとって........ってやってたので、時代は変わったなーって思う。せっかく恵まれた環境で取り組める若い人には頑張ってほしいものです。
コメントをお書きください