암드해킨에서 MATLAB을 설치해서 쓰려면 다음의 문제와 마주하게 됩니다.
1) libiomp5.dylib에서 에러 발생하여 crash (memcpy/memset 관련)
Intel compiler로 컴파일된 open mp5의 dynamic library (shared library) 입니다. 이 라이브러리 안에 인텔 CPU의 모델에 따라 구분되어 구현된 memcpy/memset 함수가 있는데 호출될 때 인텔 씨퓨가 아니면 crash 합니다.
해결방법은 다음과 같이 하여 open mp library를 설치하고,
brew install libomp
설치된 open mp library (libomp.dylib)는 다음 폴더에 위치하게 됩니다.
/usr/local/Cellar/libomp/(버전넘버)/lib/
이것을 /Application/MATLABxxxx/sys/os/maci64에 "libiomp5.dylib"으로 복사 합니다. (혹은 첨부된 파일 다운 받아서 복사하시면 됩니다).
일단 MATLAB이 떠오르는 광경은 볼 수 있습니다. demo 같은 것들도 문제 없이 돌아갑니다.
2) mkl.dylib 문제
MATLAB이 정상적으로 뜨는 것을 볼 수 있었지만, 그 간단한 행렬곱도 잘 안되고 eigenvalue/SVD 같은 것도 구할 수가 없습니다. BLAS/LAPACK에 있는 함수들이 모두 intel CPU용으로 만들어진 intel mkl을 쓰도록 되어있기 때문입니다. 또는 이들 연산/함수를 실행하면 mllapack.dylib 또는 refblas.dylib을 못 찾겠다고 합니다.
문제의 mkl.dylib 은 다음 위치에 있습니다.
/Application/MATLABxxxx/bin/maci64
이것은 인텔 CPU용으로 컴파일된 BLAS/LAPACK 함수들이 들어있는 dynamic library 입니다. 이 안에 있는 함수가 암드해킨에서 실행되면 MATLAB은 또 죽게 됩니다.
이 문제는 다음과 같이 해결합니다.
openBLAS를 사용하면 다행스럽게도 암드씨퓨(젠/불도저/...) 용으로 최적화된 BLAS/LAPACK 라이브러리를 쓸 수 있습니다. 직접 가져다 빌드할 수도 있지만, brew를 이용해서 open blas를 설치해 줍니다. (용량이 제법 커서 붙이지 못했습니다.) 물론 쉽게 구할 수 있는 LAPACK을 brew로 install하거나 shared library를 별도로 빌드해서 가져다놓아도 됩니다. 여러 가지 라이브러리를 최적화 옵션을 켜고 꺼고 해가며 비교해봐도 인텔 mkl 라이브러리보다 다 느린 결과를 보여주고 그 외의 라이브러리들은 거의 차이가 없는 성능을 보여줍니다.
fft 라이브러리의 경우는 mkl을 사용하지 않고 fftw3를 사용하는 관계로 실행하면서 죽지도 않고 성능차이는 별로 보이지 않습니다.
brew install openblas
이렇게 설치된 openblas는 /usr/local/Cellar/openblas 안에 있습니다. 그안으로 찾아들어가면 lib 폴더 안에 libopenblasp-r(버전넘버).dylib이 있을텐데 이것을 mkl.dylib으로 해서 /Application/MATLABxxxx/bin/maci64에 복사해 넣으면 됩니다. 이때 해당 폴더에 mllapack.dylib 혹은 refblas.dylib가 없다면 symbolic link를 만들어 좀전에 카피해넣은 mkl.dylib에 연결해 줍시다.
또는 openBLAS/FFTW를 받아와서 최적화 옵션을 주고 빌드해도 됩니다. znver2로 빌드했을 때 LU/Sparse 성적은 인텔 CPU대비 나쁜 편은 아닙니다. (이상하게 2D/3D 점수는 인텔 내장 GPU만도 안나옵니다만).
이제 MATLAB으로 행렬 연산과 관련 함수는 모두 실행할 수 있습니다. 혹시 제대로 동작하지 않는 함수가 있다면 추가로 빌드해서 붙여넣으면 됩니다 (^^).
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +29 | 937 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 575 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1402 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 575 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 909 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4002 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5086 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot AMD Sequoia용 AppleALC 1.9.2 +3 | 106 | 24.10.2319:04 | 사노라맨 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 102 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 119 | 24.10.2321:29 | 해킨도전자 |
103 | 24.10.2322:26 | 뿌엥 | |
119 | 24.10.2321:29 | 해킨도전자 | |
106 | 24.10.2319:04 | 사노라맨 | |
784 | 24.10.1412:27 | shl628 | |
665 | 24.10.1316:00 | 수박 | |
344 | 24.10.1222:56 | Stultus | |
937 | 24.10.1121:10 | 좌절금지 | |
732 | 24.10.1115:53 | 수박 | |
575 | 24.10.0900:22 | 줌바이퍼 | |
1402 | 24.07.1219:19 | Stultus | |
1210 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
749 | 24.09.2923:48 | 머트 | |
628 | 24.09.2822:28 | 머트 | |
463 | 24.09.2808:22 | Tamy | |
894 | 24.09.2321:32 | Stultus | |
994 | 24.09.2210:59 | 좌절금지 | |
644 | 24.09.2203:23 | 누림어멈 | |
1191 | 24.09.1919:17 | 좌절금지 | |
575 | 24.09.1917:09 | 좌절금지 | |
498 | 24.09.1813:37 | Stultus | |
909 | 24.09.1723:58 | 좌절금지 | |
601 | 24.09.1722:40 | 좌절금지 | |
453 | 24.09.1717:13 | 맥가즈아 | |
562 | 24.09.1708:13 | 김경석 | |
234 | 24.09.1617:47 | Panictosh | |
768 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
706 | 24.09.1019:44 | 치토 | |
484 | 24.09.0118:13 | 머핀X | |
462 | 24.09.0112:54 | 해킨도전자 | |
546 | 24.08.3115:34 | 머핀X | |
306 | 24.08.2601:42 | 화정큐삼 | |
305 | 24.08.2422:59 | 하나브 | |
318 | 24.08.2316:25 | 화정큐삼 | |
415 | 24.08.1810:56 | CanBe | |
363 | 24.08.1800:04 | 화정큐삼 | |
300 | 24.08.1722:03 | 화정큐삼 | |
201 | 24.08.1710:14 | jbhlyk | |
312 | 24.08.1622:06 | Stultus | |
218 | 24.08.1511:16 | hackillious | |
169 | 24.08.1421:30 | 세유니 | |
419 | 24.08.1419:58 | Stultus | |
377 | 24.08.1311:26 | 오디세이 | |
270 | 24.08.1115:46 | 좌절금지 | |
186 | 24.08.1111:21 | 티타보르 | |
233 | 24.08.1022:46 | Stultus | |
538 | 24.08.1022:10 | 오디세이 | |
168 | 24.08.1019:05 | jbhlyk | |
200 | 24.08.0923:20 | RogerT |
가성비 시스템을 누리기 위한 노력이 대단하십니다! ^^ 어쨌든 문제를 이해하고 해결 방안을 고민할 수 있는 것도 능력이라 생각되어지네요!
저는 말씀하신 내용의 0.1도 이해하진 못했지만, 어쨋든 가장 마지막줄에 있는 문구가 감동입니다. "~~~~ 는 모두 실행할 수 있습니다."
마치 어드밴처 영화를 한편 본 듯한 과정! 박수를 보내드립니다! 수고많으셨네요~^^