2016-06-13 9 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* 

계산을 최적화하는 데 사용할 수 있는지 알아 내려고하지만이 주제에 대한 정보는 부족합니다.

Accelerate.h 헤더를 포함하여 발견 된 유일한 코드는 BLAS_duscr_begin과 같이 희소식을 찾기에 충분하지 않습니다.

분명히하려면 애플의 official Accelerate Framework희소한 내용의에 대한 참조를 찾을 수 없습니다.

주제가있는 행운?

+0

어떻게 당신은 그것을 문서화되어 있지 않은 경우 발견합니까? – kangshiyin

+0

패키지를 들여다보기 시작했습니다. 질문이 업데이트되었습니다. – senseiwa

+0

그것은 일어난다. 그러나 공식적으로 지원되지 않는 무언가에 의존하고 싶지 않을 수도 있습니다. – kangshiyin

답변

2

Accelerate Framework에 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 스레드 사용할 수 sould.

스레드 MKL에서 인텔 OpenMP를 지원한다고해서 코드에서 #pragma omp을 사용하지 않으므로 OpenMP를 지원하는 컴파일러가 필요하지는 않습니다.

+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에 추가 할 수있는 라이브러리 목록에 없습니다. 오픈 블라 우스를 "사과의 길"에 성공 시켰습니까? – senseiwa

+0

#include 및 -framework Accelerate가 충분해야 함 –

+0

아니요 ... ** main.cpp : 43 : 10 : 치명적인 오류 : 'veclib/Sparse/BLAS.h'파일을 찾을 수 없음 * *'#include '. 나는 링커에 도착조차하지 않는다, 그것은 당신을 위해 일하는가? 물론'#include '가 작동하며, Apple LLVM 버전 7.3.0 (clang-703.0.31)에서 OSX 10.11.5, Xcode 7.3.1을 사용하고 있습니다. – senseiwa