トップページ -> インストール,設定,利用 -> Ubuntu ソフトウエア -> OpenBLAS のインストール(Ubuntu 上)
[サイトマップへ], [サイト内検索へ]

OpenBLAS のインストール(Ubuntu 上)

OpenBLAS は,BLAS 実装.

URL: https://www.kkaneko.jp/tools/win/openblas.html

ソフトウエア等の利用条件は,利用者自身で確認下さい.

サイト内の関連ページ

BLAS の機能の概要


前準備

OS のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行.

sudo apt update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

コンパイラ類のインストール

端末で,次のコマンドを実行.

sudo apt -yV install build-essential gcc g++ dpkg-dev pkg-config
sudo apt -yV install gfortran wget make

OpenBLAS のソースコードのダウンロード

参考 Web ページ https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide

  1. OpenBLAS のウェブページを開く

    https://www.openblas.net/

  2. このウェブページで利用条件などを確認

    必ず、最新情報を確認すること

    [image]
  3. ソースコードのダウンロード
    cd /tmp
    rm -rf OpenBLAS
    git clone https://github.com/xianyi/OpenBLAS.git
    

    [image]

OpenBLAS のビルドとインストール(Ubuntu 上)

  1. cmake の実行

    https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide の記述による

    cd /tmp
    cd OpenBLAS
    rm -rf build
    mkdir build
    cd build
    rm -f CMakeCache.txt
    cmake .. \
        -DCMAKE_C_COMPILER=gcc \
        -DCMAKE_Fortran_COMPILER=gfortran \
        -DNOFORTRAN=0 -DDYNAMIC_ARCH=OFF \
        -DCMAKE_INSTALL_PREFIX="/usr/local/OpenBLAS" \
        -DCMAKE_BUILD_TYPE=Release
    

    [image]
  2. cmake の結果の確認

    Ubuntu での実行結果例

    [image]
  3. ビルドして,インストール
    make 
    sudo make install
    
  4. 結果の確認

    エラーメッセージが出ていないこと.

    [image]

ld.so.confの設定

スーパーユーザで、下記を実行

  1. /etc/ld.so.confに以下の行を追加

    -------------ここから-----------
    /usr/local/OpenBLAS/lib
    --------------ここまで---------
    
  2. 「sudo /sbin/ldconfig」の実行

サンプルプログラム

OpenBLASを用いて行列の積を求める.実行結果は何も表示されない.

#include <stdio.h>
#include <stdlib.h>
#include <cblas.h>
#define N 2000

int main()
{
	// C = AB
	int i;
	double *A, *B, *C;

	A = (double *)malloc(sizeof(double) * N * N);
	B = (double *)malloc(sizeof(double) * N * N);
	C = (double *)malloc(sizeof(double) * N * N);

	for (i = 0; i < N * N; i++) {
		A[i] = (double)rand() / RAND_MAX;
		B[i] = (double)rand() / RAND_MAX;
	}
	cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, N, N, N, 1.0, A, N, B, N, 0.0, C, N);

	free(A);
	free(B);
	free(C);

	return 0;
}

上のプログラムを hoge.c のようなファイル名で保存.

次コマンドでコンパイル

gcc -o a.out hoge.c -L/usr/local/OpenBLAS/lib -lopenblas -lpthread

./a.out で実行

[image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]