일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 수치해석
- obsidian
- pytorch
- 텝스
- Dear abby
- MATLAB
- 에러기록
- 옵시디언
- ChatGPT
- WOX
- Statics
- 고체역학
- 생산성
- Julia
- 수식삽입
- Numerical Analysis
- IEEE
- Python
- 인공지능
- Linear algebra
- Zotero
- teps
- 딥러닝
- JAX
- 텝스공부
- LaTeX
- matplotlib
- 논문작성
- 논문작성법
- 우분투
- Today
- Total
뛰는 놈 위에 나는 공대생
[JAX] 지속적인 kernel crash 여러 가지 원인 본문
jupyer lab/notebook을 쓰다가 kernel이 터지는 경우가 있는데 다음과 같은 경우들이 있다.
https://github.com/microsoft/vscode-jupyter/wiki/Kernel-crashes
내가 겪은 대표적인 원인들은 다음과 같다.
1. 라이브러리 설치 실패 - 호환 안됨 등의 문제
2. gpu에 업로드한 데이터가 너무 많아서 문제
1번의 경우에는 재설치하고 버전 호환을 신경써서 설치해야한다. 아나콘다 등의 버전 관리 시스템을 쓰면 수월하기는 한데 JAX와 같이 최신 라이브러리는 conda channel에서 다운로드가 안되기 때문에 pip으로 다운을 받게 된다.
pip은 버전을 아주 많이 고려해주지는 못하기 때문에 본인이 신경써야 하는 문제가 있다.
개인 경험 상으로는 conda에서 가상환경을 export한 다음에 그대로 설치하는 것이 정신건강에 좋다.
2번의 경우에는 gpu에 데이터를 너무 많이 업로드한 것이므로 데이터 양을 줄여야 하는데
그래도 데이터를 많이 쓰고 싶은 경우에는 코드 최적화가 필요하다.
1) 불필요한 변수들은 애초에 만들지 않을 것
1-1) 중복되는 변수는 한 변수에만 저장하고 나머지는 free시키기 등
1-2) 더 효율적인 변수 관리
2) JAX 설정 변경 - https://normal-engineer.tistory.com/359 다음 글 참고
3) 64비트 변수 사용하지 말 것!!
3번 같은 경우에는 내 문제였는데
config.update("jax_enable_x64", True)
아무 생각 없이 변수를 64비트까지 쓰게 했다가 메모리가 훨씬 커져서 이전에 생각했던 데이터 양보다 훨씬 못 쓰는 문제가 발생했다.나 같은 분이 있다면 조심하시기를 바라며..