在OSX上稀疏BLAS

时间:2016-06-13 14:46:25

标签: macos sparse-matrix blas accelerate-framework

我刚刚发现SparseBLAS包含在OSX的OSX的Accelerate框架中。

% 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,问题

要清楚,我在Apple的official Accelerate Framework中找不到对 sparse-anything 的任何引用。

关于这个主题的运气好吗?

2 个答案:

答案 0 :(得分:2)

我没有发现任何迹象表明SparseBLAS存在于Accelerate Framework中。

但如果您接受其他选项,我建议使用MKL,现在可以免费为所有用户使用。

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

如果您接受一些性能损失并希望让您的生活更轻松,您可以使用Eigen。

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

或Eigen与MKL支持。尽管MKL只会加速密集矩阵运算,但使用Eigen作为容器仍然是好事。

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

在MKL链接线顾问的帮助下

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

你可以使用带有clang编译器的线程MKL。

请注意,线程MKL需要Intel OpenMP支持并不意味着您需要一个支持OpenMP的编译器,因为您不会尝试在代码中使用#pragma omp

答案 1 :(得分:2)

#include <veclib/Sparse/BLAS.h>

看到内在的奇迹!

https://developer.apple.com/videos/play/wwdc2015/712/ Luke Chang