나는 일부 선형 대수학 일을 시작했을 때 전 있지만, C
그것은을위한 그래서 몇 가지 자습서가 볼 수있는 놀라운 나에게 와서 BLAS
, LAPACK
그리고 다른 기본적인 API
그들은 어떻게 든 많은 다른 라이브러리의 초석이라는 사실에도 불구하고,들. 이 때문에 I가 인터넷을 통해 내가 모두 찾을 수있는 모든 예 / 자습서를 수집하기 시작 BLAS
, CBLAS
, LAPACK
, CLAPACK
, LAPACKE
, ATLAS
, OpenBLAS
...에서 이 Github에서의 REPO .
글쎄, 나는 기계 엔지니어로서 그런 깃 저장소 또는 GitHub를 관리 한 경험이 거의 없다는 것을 경고해야합니다. 먼저 여러분에게 완전한 혼란으로 보일 것입니다. 그러나 지저분한 구조를 극복하면 도움이 될 수있는 모든 종류의 예제와 지침을 찾을 수 있습니다. 나는 그것들을 컴파일하기 위해 대부분을 시도했다. 그리고 내가 컴파일하지 않은 것들에 대해 언급했습니다. GNU compilers
( gcc
, g++
및 gfortran
) 로 컴파일 가능하도록 많은 항목을 수정했습니다 . 나는 프로그램 이나 프로그램 에서 MakeFile
개별 Fortran/FORTRAN
루틴을 호출하는 방법을 배우기 위해 읽을 수있는 것을 만들었습니다 . 또한 Mac 및 Linux (죄송한 Windows 사용자!)에 대한 설치 지침을 작성했습니다. 나도 만들었 어C
C++
bash
.sh
이 라이브러리 중 일부의 자동 컴파일을위한 파일.
그러나 다른 질문에가는 : BLAS
그리고 LAPACK
오히려 있습니다 API
특정 아니에요 SDK
들. 그것들은 구현이나 라이브러리가 아닌 사양 또는 언어 확장 목록 일뿐입니다. 그 말로 Netlib의 에 의해 구현 된 원본이 FORTRAN 77
있으며 대부분의 사람들은 BLAS
및 에 대해 이야기 할 때 (혼란합니다!) LAPACK
. 따라서이 API
s를 사용할 때 많은 이상한 것을 보게되면 실제로 라이브러리와 함수 FORTRAN
가 C
아닌 루틴을 호출했기 때문 C
입니다. ATLAS
그리고 OpenBLAS
최고의 구현의 일부 BLAS
와 LACPACK
내가 아는 한. 그들은 API
비록 그들이 구현 한 내 지식 에 따라 원본을 준수합니다 .C/C++
처음부터 (확실하지 않습니다!). 의 GPGPU 구현이 있습니다 API
사용의 OpenCL
: CLBlast는 , clBLAS는 , clMAGMA , ArrayFire 및 ViennaCL이 일부 언급은. 특정 하드웨어 또는 플랫폼에 최적화 된 공급 업체별 구현도 있으므로 누구나 사용하지 않는 것이 좋습니다.
사용 배우고 싶은 사람에게 나의 추천 BLAS
하고 LAPACK
있는이 C
배우는 것입니다 FORTRAN-C
첫번째 혼합 프로그래밍. 언급 된 리포지토리의 첫 번째 장은이 문제에 전념하고 있으며 여러 가지 예를 모았습니다.
추신 : 나는 때때로 저장소의 개발 부서 에서 일해 왔습니다 . 약간 덜 지저분 해 보인다!