소스에서 LAPACK을 컴파일하고 Ubuntu에서 사전 빌드 된 패키지를 설치하면 어떤 이점이 있습니까?


13

ATLAS가 컴파일 된 머신에 대해 자체 최적화 할 수 있으므로 소스에서 컴파일하면 최대의 이점을 얻을 수 있습니다. 소스에서 LAPACK을 컴파일하면 어떤 이점이 있습니까? 사전 빌드 된 패키지를 설치하는 것이 훨씬 쉬울 것입니다.


시간이 소비되는 이유를보기 위해이 기술 을 시도해 보는 것이 좋습니다. 큰 행렬이 아닌 행렬로 많은 작업을 수행하는 경우 라이브러리 루틴이 입력 문자 플래그 및 기타 입력 분류를 분류하는 데 절반 이상의 시간을 소비하므로 라이브러리를 확장하여 많은 속도를 얻을 수 있습니다. 몇 가지 잘 선택된 손으로 코딩 한 루틴.
Mike Dunlavey 2016 년

답변:


9

OpenBlas는 매우 빠르므로 LAPACK에 연결할 수 있습니다. CPU 공급 업체에서 미리 컴파일 한 LAPACK / BLAS 버전을 사용해 보셨습니까? 예를 들어 AMD ACML (무료) 또는 Intel MKL (비상업적 및 비 학술적 용도로 Linux에서 무료)? 설치 파일의 압축을 풀고 실행하면됩니다.

제 생각에는 ATLAS를 사용하는 유일한 이점은 비정상적인 CPU를 사용할 때입니다. 그렇지 않으면 CPU 공급 업체의 제품을 사용하십시오. 또한 nVIDIA CUDA 및 AMD OpenCL 버전도 있습니다.

편집 : 항상 소스에서 소프트웨어를 컴파일하는 것보다 훨씬 쉬운 소스에서 Ubuntu DEB 패키지를 항상 빌드 할 수 있음을 기억하십시오.


나는 당신의 제안에 따라 MKL을 설치할 것이라고 생각합니다. 또한 DEB 패키지 작성에 대한 팁 덕분에 가능하다는 사실을 알지 못했습니다.
OSE 2016 년

2
ld (동적 라이브러리 링커에서 해당 라이브러리를 찾을 수 있도록)를 구성해야합니다. Intel MKL의 BLAS 및 LAPACK은 libmkl_rt.so일반적으로 다음을 사용하여 링크 된 파일에 있습니다.-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery

2
하나는 인텔의 비영리 라이센스가 그들이 지금 학업 사용에 대한 매우 명시있는 점에 더 많은 제한 각 릴리스받은 것을 지적해야 하지 당신이 당신의 연구를 위해 돈을 받고으로 즉시 적용된다.
Christian Clason

그렇습니다. 그러나 무료로 테스트 할 수 있습니다.] 유용하다고 판명되면 세계에서 가장 비싼 것은 아닙니다.
Misery

7

리포지토리 패키지는 컴파일 방식으로 인해 스레딩과 함께 사용하기에 안전하지 않습니다. Lapack 포럼 에서 버그를보고 했지만 해결 방법이나 솔루션이 리포지토리에 추가되는 데 시간이 오래 걸립니다. 직접 컴파일하는 경우 gfortran에 "-frecursive"를 추가하십시오.


6

필자의 경험에 따르면 최신 버전의 우분투에서 blas / lapack을 사용하는 가장 좋은 방법은 패키지 된 openblas를 사용하는 것입니다.

가치있는 것을 위해, 나는 주로 python numpy / scipy를 통해 blas / lapack을 사용하고 openblas를 사용하면 기본값 대 200x만큼 선형 대수의 속도가 빨라집니다. 사용자 정의 ATLAS를 사용해 보았지만 엄청난 고통이었고 openblas와 비교했을 때 속도를 올리지 않았지만 잘못하고 있었을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.