我試圖在Ubuntu 14.04 LTS(64位)中使用NumPy加速矩陣操作。而不是使用ATLAS(實際上,當我使用ATLAS時,只有1個線程完全運行,其他7個線程無所事事,即使我指定了OMP_NUM_THREADS=8
也是如此),我決定給OpenBLAS一試。安裝OpenBLAS和Numpy後沒有_dotblas.so
我花了好幾個小時的時間,按照幾個教程來構建OpenBLAS和NumPy的源代碼,例如, [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位上都能很好地工作。
感謝您提出這一點 - 我已經添加了一個[新的測試腳本](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
@ali_m:感謝您的精彩指南!我以前從中學到很多東西。實際上,在你的指南中,你沒有把'[atlas]'和'[lapack]'放在* site.cfg *文件中,而另一些人則聲稱這兩個很重要。如果'[atlas]'和'[lapack]'真的有必要,你可以評論嗎? – mintaka 2015-03-15 00:16:09
[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