OpenBLAS の Windows でのビルドと .dll ファイルの生成

概要

OpenBLAS(オープンソースの BLAS(Basic Linear Algebra Subprograms、基本的な線形代数の演算をまとめたライブラリ)実装)を、Windows 上でソースからビルドし、共有ライブラリ(.dll)とインポートライブラリ(.lib)を生成する手順を説明する。かつて広く使われた GotoBLAS は後藤和茂 氏の TACC 退職にともない開発が終了しており、その後継として GotoBLAS2 を基に開発が続けられているのが OpenBLAS である。新規に利用する場合は OpenBLAS を用いる。

目次

関連する外部ページ

OpenBLAS 公式のインストール手順:https://www.openmathlib.org/OpenBLAS/docs/install/

サイト内の関連情報

ビルドに必要な C/C++ コンパイラ、FORTRAN コンパイラ、ビルドシステムのインストールは、「clang, flang, ninja のインストール」で説明している。

前準備

OpenBLAS を Visual Studio の native ABI 向けにビルドするには、C/C++ コンパイラ(clang-cl)、FORTRAN コンパイラ(flang)、ビルドシステム(Ninja)、および CMake が必要である。LAPACK の関数を含める場合は FORTRAN コンパイラが必要になる。

まず、マイクロソフト C++ ビルドツール (Build Tools) をインストールする。

次に、clang, flang, ninja を「clang, flang, ninja のインストール」の手順でインストールする。これらは Miniforge の conda 環境に導入する。

OpenBLAS のソースの取得

OpenBLAS の GitHub Releases ページから、最新の安定版のソース(.zip または .tar.gz)を入手して展開する。または git で入手する場合は、次を実行する。

git clone https://github.com/OpenMathLib/OpenBLAS.git
cd OpenBLAS
自分でソースをビルドせず、できあがった DLL をそのまま使いたい場合は、GitHub Releases ページで配布されている Windows 向けのビルド済みバイナリ(MinGW でビルドされた .zip)を入手して展開する方法もある。

CMake によるビルドと .dll ファイルの生成

  1. WindowsMiniforge Prompt(スタートメニューの Miniforge のフォルダにある)を開き、cd で OpenBLAS のソースディレクトリに移動する。
  2. 64ビットの MSVC 環境を有効にする。Visual Studio 2026 の Community 版を既定の場所にインストールした場合は、次を実行する(インストール先やバージョンにより読み替える)。
    "c:\Program Files\Microsoft Visual Studio\2026\Community\VC\Auxiliary\Build\vcvars64.bat"
    

    環境が有効になったことは、link と入力して多数のオプション一覧が表示されることで確認できる。

  3. CMake で構成する。ソースディレクトリで次を実行する。共有ライブラリ(.dll)を生成するため、-DBUILD_SHARED_LIBS=ON を付ける(既定では静的ライブラリの .lib だけが作られる)。
    set "LIB=%CONDA_PREFIX%\Library\lib;%LIB%"
    set "CPATH=%CONDA_PREFIX%\Library\include;%CPATH%"
    mkdir build
    cd build
    cmake .. -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DCMAKE_MT=mt -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 -DDYNAMIC_ARCH=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
    
  4. ビルドする。
    cmake --build . --config Release
    
  5. 生成されたファイルを扱いやすい場所へ配置する。
    cmake --install . --prefix c:\opt -v
    

    この例では、c:\opt\bin に共有ライブラリ libopenblas.dllc:\opt\lib に静的ライブラリ、c:\opt\include\openblas にヘッダファイルが配置される。