암드해킨에서 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으로 행렬 연산과 관련 함수는 모두 실행할 수 있습니다. 혹시 제대로 동작하지 않는 함수가 있다면 추가로 빌드해서 붙여넣으면 됩니다 (^^).
gtrfxdsp님의 새글 알림을 받으실려면 구독
가성비 시스템을 누리기 위한 노력이 대단하십니다! ^^ 어쨌든 문제를 이해하고 해결 방안을 고민할 수 있는 것도 능력이라 생각되어지네요!
저는 말씀하신 내용의 0.1도 이해하진 못했지만, 어쨋든 가장 마지막줄에 있는 문구가 감동입니다. "~~~~ 는 모두 실행할 수 있습니다."
마치 어드밴처 영화를 한편 본 듯한 과정! 박수를 보내드립니다! 수고많으셨네요~^^
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +3 | 좌절금지 | 24.09.1917:09 | 93 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +16 | 좌절금지 | 24.09.1723:58 | 207 |
[중급편] 노트북 해킨 +8 | Stultus | 24.07.1219:19 | 760 |
[초급편] 문제 스스로 해결하기 +17 | Stultus | 24.03.2920:07 | 3542 |
[입문편] 첫 해킨 길라잡이 +32 | Stultus | 24.01.1218:54 | 4304 |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +63 | shl628 | 23.01.0913:39 | 5만 |
macOS Sequoia 15 설치 후기 + Bcm94360NG WiFi 작동함 | 좌절금지 | 24.09.1919:17 | 251 |
[ Sequoia 15.0, OC 1.0.1 ] BIOSTAR H410MH, i5-10500, RX580 | Stultus | 24.09.1813:37 | 176 |
좌절금지 | 24.09.1919:17 | 251 | |
좌절금지 | 24.09.1917:09 | 93 | |
Stultus | 24.09.1813:37 | 176 | |
좌절금지 | 24.09.1723:58 | 207 | |
좌절금지 | 24.09.1722:40 | 239 | |
맥가즈아 | 24.09.1717:13 | 98 | |
김경석 | 24.09.1708:13 | 241 | |
Panictosh | 24.09.1617:47 | 101 | |
Tamy | 24.09.1504:35 | 472 | |
Stultus | 24.09.1319:18 | 440 | |
치토 | 24.09.1019:44 | 476 | |
머핀X | 24.09.0118:13 | 398 | |
해킨도전자 | 24.09.0112:54 | 298 | |
머핀X | 24.08.3115:34 | 376 | |
화정큐삼 | 24.08.2601:42 | 241 | |
하나브 | 24.08.2422:59 | 213 | |
화정큐삼 | 24.08.2316:25 | 249 | |
CanBe | 24.08.1810:56 | 330 | |
화정큐삼 | 24.08.1800:04 | 205 | |
화정큐삼 | 24.08.1722:03 | 191 | |
jbhlyk | 24.08.1710:14 | 167 | |
Stultus | 24.08.1622:06 | 253 | |
hackillious | 24.08.1511:16 | 159 | |
세유니 | 24.08.1421:30 | 124 | |
Stultus | 24.08.1419:58 | 348 | |
오디세이 | 24.08.1311:26 | 272 | |
좌절금지 | 24.08.1115:46 | 194 | |
티타보르 | 24.08.1111:21 | 141 | |
Stultus | 24.08.1022:46 | 183 | |
오디세이 | 24.08.1022:10 | 394 | |
jbhlyk | 24.08.1019:05 | 127 | |
RogerT | 24.08.0923:20 | 145 | |
좌절금지 | 24.08.0717:18 | 286 | |
RogerT | 24.08.0609:17 | 115 | |
줌바이퍼 | 24.08.0606:14 | 466 | |
jbhlyk | 24.08.0523:34 | 81 | |
수인과윤슈 | 24.08.0521:10 | 186 | |
좌절금지 | 24.08.0521:08 | 838 | |
Stultus | 24.08.0221:07 | 432 | |
Tamy | 24.07.3019:12 | 344 | |
해킨도전자 | 24.07.2915:37 | 264 | |
june119 | 24.07.2813:52 | 233 | |
Stultus | 24.07.2112:43 | 246 | |
BlueGuerrilla | 23.05.0502:19 | 3995 | |
Stultus | 24.07.1219:19 | 760 | |
김태국 | 21.08.0213:10 | 3679 | |
Stultus | 24.07.1122:47 | 216 | |
Stultus | 24.07.1020:44 | 139 | |
Stultus | 24.07.0921:44 | 138 | |
Stultus | 24.07.0820:57 | 225 | |
의정이 | 24.07.0811:28 | 172 | |
Stultus | 24.07.0721:25 | 265 | |
bsiugr | 24.07.0604:41 | 289 | |
애플브리크 | 24.07.0509:56 | 496 | |
광호 | 24.02.1715:21 | 2189 | |
치토 | 24.06.2723:24 | 400 | |
talas | 24.06.2617:24 | 193 | |
블루사탕 | 24.06.2120:58 | 116 | |
gtrfxdsp | 24.06.1609:01 | 515 | |
Mactopia | 24.06.1401:04 | 345 | |
Stultus | 24.06.1120:40 | 732 | |
새콤칠리 | 24.06.1115:07 | 673 | |
좌절금지 | 23.02.2118:35 | 118만 | |
Steer | 24.06.1001:11 | 276 | |
Door | 24.06.0810:09 | 155 | |
Tamy | 24.06.0107:41 | 417 | |
ssdwe346 | 24.05.2923:53 | 301 | |
joy | 24.05.2809:58 | 267 | |
거니 | 24.05.2601:07 | 243 | |
RogerT | 24.05.2520:14 | 247 | |
좌절금지 | 24.05.1812:40 | 916 | |
wjdgkdus | 24.05.1615:02 | 213 | |
Tamy | 24.05.1417:36 | 797 | |
줌바이퍼 | 24.05.1002:04 | 1010 | |
의정이 | 24.05.0821:05 | 144 | |
ryzen | 23.10.0921:28 | 2411 | |
챠니앤차니 | 24.05.0319:15 | 146 | |
챠니앤차니 | 24.05.0220:17 | 175 | |
고맹이 | 24.05.0210:00 | 635 | |
shl628 | 24.04.3013:54 | 1067 |