2016-06-13 77 views
1

我剛剛發現OSX中的OSX的Accelerate框架中包含了SparseBLAS。OSX上的稀疏BLAS

% ls -l /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A 
total 25360 
drwxr-xr-x 5 root wheel  170 May 18 09:49 Resources/ 
drwxr-xr-x 3 root wheel  102 May 18 09:49 _CodeSignature/ 
-rwxr-xr-x 1 root wheel 5115440 May 5 08:00 libBLAS.dylib* 
-rwxr-xr-x 1 root wheel 13518752 May 5 08:00 libLAPACK.dylib* 
-rwxr-xr-x 1 root wheel 254240 May 5 08:00 libLinearAlgebra.dylib* 
-rwxr-xr-x 1 root wheel 334128 May 5 08:00 libSparseBLAS.dylib* 
-rwxr-xr-x 1 root wheel 3715824 May 5 08:00 libvDSP.dylib* 
-rwxr-xr-x 1 root wheel 2602304 May 5 08:00 libvMisc.dylib* 
-rwxr-xr-x 1 root wheel  50320 May 5 08:07 vecLib* 

我想找到我是否可以用它來優化我的計算,但在這個話題的信息是稀缺無法比擬的。

我發現的唯一明智的代碼是this question,但包括Accelerate.h標題不足以找到問題中提到的稀疏例程,例如BLAS_duscr_begin

要清楚,我找不到稀疏 - 任何在從蘋果official Accelerate Framework提及。

對這個話題有什麼好運?

+0

如何發現,如果它沒有記錄? – kangshiyin

+0

我開始在包裏面看。問題已更新。 – senseiwa

+0

它發生了。但是你可能不想依賴那些沒有官方支持的東西。 – kangshiyin

回答

2

我還沒有發現加速框架中存在SparseBLAS的任何跡象。

但是,如果您願意接受其他選項,我會建議MKL,現在可以免費爲所有用戶使用。

https://software.intel.com/en-us/articles/free-mkl

如果你願意接受的性能損失,並希望使您的生活更輕鬆,你可以使用本徵。

http://eigen.tuxfamily.org/index.php?title=Main_Page

或者徵與MKL支持。雖然MKL只會加速密集矩陣操作,但使用Eigen作爲容器仍然不錯。

https://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html


隨着MKL鏈接行顧問的幫助下

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor

你前人的精力能夠使用線程MKL鏗鏘編譯器。

請注意,線程MKL需要Intel OpenMP支持並不意味着您需要支持OpenMP的編譯器,因爲您不會嘗試在代碼中使用#pragma omp

+0

感謝@Eric,但似乎MKL不會支持'clang'的線程。 – senseiwa

+0

我沒有嘗試過,但根據這個,它支持'-liomp5'鏈接選項的openmp。 https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor – kangshiyin

+0

是的,但我沒有OpenMP,所以我不能鏈接'libiomp5.dylib'。我認爲'i'代表英特爾,所以它可能是一個'icc'專用的庫。 – senseiwa

2
#include <veclib/Sparse/BLAS.h> 

看到裏面的奇蹟!

https://developer.apple.com/videos/play/wwdc2015/712/盧凱昌

+0

感謝您的指針,我錯過了視頻。看起來,雖然我看不出如何「正確地」使用圖書館。我的意思是,它不在我可以在Xcode中添加的庫列表中。你成功了openblas「蘋果之路」嗎? – senseiwa

+0

#include 和-framework加速應該足夠 –

+0

不能...... ** main.cpp:43:10:致命錯誤:找不到'veclib/Sparse/BLAS.h'文件* *'#include '。我甚至沒有接觸到鏈接器,它是否適合你?當然'#include '起作用,我使用OSX 10.11.5,Xcode 7.3.1和Apple LLVM 7.3.0版(clang-703.0.31)。 – senseiwa