日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

OpenBLAS简介及在Windows7 VS2013上源码的编译过程

發(fā)布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenBLAS简介及在Windows7 VS2013上源码的编译过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OpenBLAS(Open Basic Linear Algebra Subprograms)是開源的基本線性代數(shù)子程序庫,是一個優(yōu)化的高性能多核BLAS庫,主要包括矩陣與矩陣、矩陣與向量、向量與向量等操作。它的License是BSD-3-Clause,可以商用,目前最新的發(fā)布版本是0.2.19。它的源碼放在了GitHub上,由張先軼老師等持續(xù)維護。

OpenBLAS是由中科院軟件所并行軟件與計算科學(xué)實驗室發(fā)起的基于GotoBLAS2 1.13 BSD版的開源BLAS庫高性能實現(xiàn)。

BLAS是一個應(yīng)用程序接口(API)標準,用以規(guī)范發(fā)布基礎(chǔ)線性代數(shù)操作的數(shù)值庫(如矢量或矩陣乘法)。該程序集最初發(fā)布于1979年,并用于建立更大的數(shù)值程序包(如LAPACK)。在高性能計算領(lǐng)域,BLAS被廣泛使用。

OpenBLAS支持的操作系統(tǒng)包括:Windows、Linux、Mac OS X、FreeBSD、Android.

OpenBLAS支持CPU類型包括:Intel、AMD、MIPS64、ARM/ARM64、IBM Z13.

在Windows7上安裝Perl操作步驟:

1.??????從https://www.perl.org/get.html下載Windows ActiveState Perl 5.22.3.2204 windows 64-bit;

2.??????點擊安裝,一直選擇默認設(shè)置即可;

3.??????打開命令提示符cmd,輸入: $ perl -v? 如果提示This is perl5,version 22等信息,說明安裝正確,如下圖:


OpenBLAS在VS2013上的編譯過程:(注:直接用VS2013編譯不如用MinGW編譯好,因為VS2013僅編譯C語言,沒有編譯AT&T匯編語言。在性能上用MinGW編譯的庫要快于直接用VS2013編譯的庫。要通過CMake和VS2013編譯OpenBLAS源碼,Windows操作系統(tǒng)上還需要安裝Perl)

1.??????從?https://github.com/xianyi/OpenBLAS/releases下載OpenBLAS 0.2.19源碼,并解壓縮;

2.??????打開CMake GUI:source code: D:/Download/OpenBLAS-0.2.19/OpenBLAS-0.2.19; build thebinaries: D:/Download/OpenBLAS-0.2.19/build;

3.??????點擊Configure;Specify the generator for this project: Visual Studio 12 2013 Win64,Finish;

4.??????修改CMAKE_INSTALL_PREFIX路徑為:D:/Download/OpenBLAS-0.2.19/install;默認BUILD_WITHOUT_LAPACK是被勾選的,即不會產(chǎn)生Lapack庫;

5.??????再次點擊Configure,點擊Generate,生成OpenBLAS.sln,如下圖;


6.??????打開OpenBLAS.sln:分別在Debug和Release下,重新生成解決方案,便會生成libopenblas.dll和libopenblas.lib(注:Debug和Release下,默認生成的庫的名字一樣,并且在同一個目錄下);

7. ? ? ?新建一個控制臺工程,驗證其openblas庫的正確性,測試代碼如下:

#include "funset.hpp"
#include <iostream>
#include <cblas.h>int test_openblas()
{int th_model = openblas_get_parallel();switch (th_model) {case OPENBLAS_SEQUENTIAL:printf("OpenBLAS is compiled sequentially.\n");break;case OPENBLAS_THREAD:printf("OpenBLAS is compiled using the normal threading model\n");break;case OPENBLAS_OPENMP:printf("OpenBLAS is compiled using OpenMP\n");break;}int n = 2;double* x = (double*)malloc(n*sizeof(double));double* upperTriangleResult = (double*)malloc(n*(n + 1)*sizeof(double) / 2);for (int j = 0; j<n*(n + 1) / 2; j++)upperTriangleResult[j] = 0;x[0] = 1; x[1] = 3;cblas_dspr(CblasRowMajor, CblasUpper, n, 1, x, 1, upperTriangleResult);double*& A = upperTriangleResult;std::cout << A[0] << "\t" << A[1] << std::endl << "*\t" << A[2] << std::endl;free(upperTriangleResult);free(x);return 0;
}
執(zhí)行結(jié)果如下:

Note: 也可以用命令提示符定位到openblas根目錄下,執(zhí)行:$ cmake -G "Visual Studio 12 Win64" 會直接生成OpenBLAS.sln工程


GitHub:https://github.com/fengbingchun/Caffe_Test

總結(jié)

以上是生活随笔為你收集整理的OpenBLAS简介及在Windows7 VS2013上源码的编译过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。