ROKO

MemoryError: Unable to allocate 13.9 MiB for an array with shape (24, 276, 276) and data type float64 본문

Develop

MemoryError: Unable to allocate 13.9 MiB for an array with shape (24, 276, 276) and data type float64

RO_KO 2023. 2. 8. 14:38
728x90

인턴용 서버가 자주 다운되는 일이 발생했는데, 아마 주범이 나인거 같다. 서버도 결국에 컴퓨터이고 파일을 실행하려면 VM(가상메모리)를 할당받아 램에서 실행 될텐데 주어진 할당량보다 더 많은 physical space를 요구해서 서버가 버티지 못하고 다운 된것 같다.

 

램이 과부하 되면 서버가 다운되는 일이 있다고 박사과정 선배님이 말해주신게 생각났다. 서버가 다운되기전 터미널에 나온 에러 문구를 복사해서 구글링 했는데 예상하던 문제였고 이를 해결하기 위해서 어떤 방법들이 있는지 살펴보았다.

 


1. 그냥 다시 실행

운좋으면 실행이 된다. 는 말이 있는데 아마도 램 정리를 하면서 우연히 공간이 나온것 같다. 하지만 잘 생각해보면 공간정리를 통해 겨우 실행된다는건 이미 램이 과부하 직전 이라는 뜻이고 이는 적절한 방법이 아니라고 생각된다.

 

2. Batch size 줄이기

모델을 학습할때 한번에 실행시키는 Batch 사이즈 양을 줄임으로써 램 부담을 낮추면 될 것 같다. 제목에 276이 반복되어 써져있는데 경로예측 딥러닝 모델의 Batch size가 256이여서 저렇게 표시된 상황이다. 그래서 지금은 23으로 낮추어 학습을 진행중이다. 그만큼 시간이 늘어나겠지만 서버 다운이 일어나지는 않는것 같다. 근데 예전 기억에 이렇게 학습했을때 Linux OOM이 일어났던거 같은데...

 

3. Paging Size 늘리기

램이 부하가 걸린이유는 Page 사이즈가 부족하다는 것이고 애초부터 크게크게 주면 해결 되지 않을까? 물론 컴퓨터 전반적인 과정에서는 Paging을 늘리면 공간 낭비가 심해지겠지만 많은 Page 사이즈를 요구하는 실행파일이라면 어쩔수 없지 않을까하는 생각이 든다.

 

관련 내용링크를 첨부하였다.

 

https://apple.stackexchange.com/questions/399878/how-do-i-increase-size-of-virtual-memory-in-mac-os-catalina

 

How do I increase size of Virtual Memory in Mac OS Catalina?

I am running Mac OS Catalina 10.15.6 with APFS formatted disk on an unsupported MAC using dosdude1 guide. My experience from windows is I had to make careful calculations on pagefile.sys and run into

apple.stackexchange.com

https://kb.iu.edu/d/afkw

 

With Mac OS, how can I allocate more memory to an application?

ARCHIVED: With Mac OS, how can I allocate more memory to an application? This content has been archived, and is no longer maintained by Indiana University. Information here may no longer be accurate, and links may no longer be available or reliable. <!-- t

kb.iu.edu

4.SSD Upgrade

아래 링크에 댓글들을 보면 자세한 얘기들이 나열되어 있지만, 8테라 기준이라 하니 램을 업그레이드 하는게 더 좋은거 같다.

또한 SSD가 빨라졌다한들 RAM의 속도는 따라잡으려면 한참 멀었다는 기준에 RAM Upgrade가 나은것 같다.

https://www.clien.net/service/board/cm_mac/16671305

 

맥북프로 램 업글하지 말고 SSD를 업글해야 한다? : 클리앙

유튜브 보다가 제가 미처 모르던 이론이 나와서 맥당에 공유합니다. 제가 해당 영상을 다 본 게 아니라 제목이 틀린 말일 수도 있습니다. 그런데 저분 말이 맞다면 SSD를 1테라로 올리는 게 메모

www.clien.net

 

5. RAM Upgrade

램만 업그레이드 한다고 해결이 되는건 아니지만 충분한 돈이 있다면 가장 빠르고 합리적인 해결법이다. 오해하면 안되는 부분은 컴퓨터는 어느 하나의 하드웨어가 특출나다고 전체의 성능을 올려주지 못한다. 각자의 성능이 호환가능한 부품을 맞추는게 제일 중요하다. 따라서 SSD도 사면 좋다...

 

6. 평소에 Memory Usage 줄이기

맥 기준 메모리 사용량을 줄이는 평소 습관들에 대해 나열되어있다. 핵심은 필요없는 background app을 없애 memory 를 확보한다는 개념이다. 평소 생활까지 생각한다면 설정해놓아도 나쁘지 않은 습관인것 같다.

https://macpaw.com/how-to/reduce-memory-usage-on-mac

 

Mac에서 RAM을 정리하고 메모리 사용량을 줄이는 방법

 

macpaw.com


결론

다양한 해결방법이 존재한다. 하지만 돈으로 해결하는 방식이 제일 깔끔하고 좋다.

 

비슷한 문제로 도움을 구한 내용을 첨부하였다.

https://stackoverflow.com/questions/57507832/unable-to-allocate-array-with-shape-and-data-type

 

Unable to allocate array with shape and data type

I'm facing an issue with allocating huge arrays in numpy on Ubuntu 18 while not facing the same issue on MacOS. I am trying to allocate memory for a numpy array with shape (156816, 36, 53806) with...

stackoverflow.com

 

728x90

'Develop' 카테고리의 다른 글

[Linux] SSH 종료 이후에도 process 실행  (0) 2023.02.19
[Linux] htop  (0) 2023.02.09
Latex 수식 편집기  (0) 2023.02.08
Numpy array[::]  (0) 2023.01.17
Comments