2015-03-13 49 views
2

我試圖在Ubuntu 14.04 LTS(64位)中使用NumPy加速矩陣操作。而不是使用ATLAS(實際上,當我使用ATLAS時,只有1個線程完全運行,其他7個線程無所事事,即使我指定了OMP_NUM_THREADS=8也是如此),我決定給OpenBLAS一試。安裝OpenBLAS和Numpy後沒有_dotblas.so

我花了好幾個小時的時間,按照幾個教程來構建OpenBLASNumPy的源代碼,例如, [1],[2],[3],[4][5]。但是,編譯NumPy後,它們都不能生成_dotblas.so,這是一個加速矩陣之間操作的關鍵文件。

我可以知道有人在Ubuntu 14.04下成功構建NumPy和OpenBLAS嗎?如果是這樣,請你讓我知道該怎麼辦?

謝謝。


更新:

下面基本上是我從上面的五個職位總結,並在我的機器上試過:

# OpenBLAS 
git clone git://github.com/xianyi/OpenBLAS 
cd OpenBLAS 
make FC=gfortran 
sudo make PREFIX=/opt/OpenBLAS/ install 
cd .. 
# let the system know 
sudo sh -c 'echo "/opt/OpenBLAS/lib" > /etc/ld.so.conf.d/openblas.conf' 
sudo ldconfig 

# Numpy 
git clone https://github.com/numpy/numpy 
cd numpy 
vim site.cfg # and put the following content within #### in site.cfg 
#### 
[default] 
library_dirs = /opt/OpenBLAS/lib 
[atlas] 
atlas_libs = openblas 
library_dirs = /opt/OpenBLAS/lib 
[lapack] 
lapack_libs = openblas 
library_dirs = /opt/OpenBLAS/lib 
#### 
export BLAS=/opt/OpenBLAS/lib/libopenblas.a 
export LAPACK=/opt/OpenBLAS/lib/libopenblas.a 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/OpenBLAS/lib/ 
python setup.py build 
sudo python setup.py install 

UPDATE:以上腳本已經過測試,在Ubuntu 12.04和14.04 64位上都能很好地工作。

回答

3

對於那些還在用OpenBLAS構建NumPy的人來說,_dotblas模塊從NumPy 1.10.0開始不再可用,根據Release Notes。從this post找到。

+0

感謝您提出這一點 - 我已經添加了一個[新的測試腳本](https://gist.github.com/alimuldal/eb0f4eea8af331b2a890)到[我以前的指南](http://stackoverflow.com/questions/11443302 /編譯-numpy-with-openblas-integration/14391693#14391693)用於編譯針對OpenBLAS的numpy – 2015-03-14 19:49:17

+0

@ali_m:感謝您的精彩指南!我以前從中學到很多東西。實際上,在你的指南中,你沒有把'[atlas]'和'[lapack]'放在* site.cfg *文件中,而另一些人則聲稱這兩個很重要。如果'[atlas]'和'[lapack]'真的有必要,你可以評論嗎? – mintaka 2015-03-15 00:16:09

+0

[ATLAS](http://math-atlas.sourceforge.net/)是一個替代BLAS實現。如果你想使用ATLAS而不是OpenBLAS(如果你同時包含'[atlas]'和'[openblas]'部分,那麼'site.cfg'的這一部分將是非常重要的,那麼我認爲numpy優先考慮通過ATLAS與OpenBLAS進行鏈接,所以它不會有任何區別)。因爲OpenBLAS的[默認版本](https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.rule#L75-L77),所以''[lapack]'部分也是不必要的。還包括[netlib-lapack](http://www.netlib.org/lapack/)的內容。 – 2015-03-15 00:23:27