[Week 2- Day 4] 회고

2022. 1. 27. 21:20About Me/AI Tech

# Multi-GPU

- Signle(1개) vs Multi(2개)

- GPU vs Node(1대 컴퓨터)

- Signle Node Signle GPU vs Signle Node Multi GPU(많은 경우) vs Signle Node Signle GPU

 

- module 병렬화 : module의 반으로 쪼개서 각각의 GPU에서 학습

- data 병렬화 : data를 나눠서 병렬적으로 학습

# DataParallel (py는 GIL 문제 있을 수O)
parallel_model = torch.nn.DataParallel(model)

# DistributedDataParallel (사실 복잡 & 신경써야할 게 많아서 거의 안써!)
train_sampler = torch.utils.data.distributed.DistributedSampler(train_data)
trainloader = torch.utils.data.DataLoader(train_data 등등)

 

# hyper-parameter 튜닝

RayTune 프레임워크 : https://docs.ray.io/en/master/tune/index.html

 

- model : 영향을 가장 많이 미치지만, 좋은 모델은 대부분 알려짐.

- data : (가장 중요) 새로운 data, error는 없는지

- H/P : 일반화

 

# PyTorch- Trouble Shooting

- OOM = train 하면서 가장 많이 만나는 error

   해당 error의 경우, 왜 발생했는지 알기 어렵. (ex. 어디서 발생했나? GPU가 거짓말을 하기도?)

   대부분 iter를 돌아가 나타나며, 지속적인 상황 파악을 할 수 없어서 발생함.

   해결책은 batch_size를 1로 하고, GPU clean하고, Run 돌려보는 것임.

- CUDNN_STATUS_NOT_INIT = GPU를 잘못 깔았거나, 제대로 안깔았을 경우 발생.

- device_side_assert = OOM의 일종

# GPU 상태 확인 (on Colab)
GPUtil.showUtilization()

# 결과가 아래로 갈수록 %가 늘어난다면, 메모리 누수가 있음
# ++ 앤드류 응, <메모리 버퍼 만들어서 CNN제작 강의>

참고 : https://brstar96.github.io/shoveling/device_error_summary/

 

 

추가적인 해결방안 tip.

- 일회성 1-d tensor는 Python 기본객체로 변환 (=> .item, float())

- 더이상 필요없는 변수는 del문으로 메모리에서 삭제

- batch_size = 1로 해서 실험

- torch.no_grad()을 사용하면, backward pass로 인한 memory buffer 현상 발생X

   no_grad.context내에서 backward가 일어나더라도 memory추가 발생X

   추론(inference) 시점에서 꼭 사용하자!

 

 

## 피어 세션

아침에 아직 과제2를 다못해서 걱정이 태산이었는데, 생각보다 빨리 과제2를 마치고 어제 못다한 회고도 작성하였다.

확실히 과제량이 많아서 그런지 코딩스터디도 제대로 못하고, 과제도 막바지에 다다라서 냈다. 근데 다행히 부담감은 없었다.(?)

아 근데 책 반납해야하는데, 계속 이거 접속해야하는 것 같아서 어디를 못나가겠다.. 

 

오늘은 되게 여러 얘기가 오갔다. 논문 읽기에 관심이 많은데, 2달 동안 읽었다더라 등등 말이 엄청 많았다.

내가 순간 말실수를 한건가 하고 생각했는데, 새로운 활동 소개해주셔서 잘 넘어가서 좋았다.

내일 스페셜 피어세션으로 조가 바뀔 것 같은데, 다른 팀원 말로는 우리 조는 되게 적극적이라고 한다. 되게 기분 좋았다.

ppt 이런 곳에 웃긴 밈들 넣는데, 친숙하고 확 와닿아서 너무 좋았다. 나중에 ppt 만들게 되면 밈을 적용해보고 싶다..!

 

 

 

 

 

 

 

 

 

반응형

'About Me > AI Tech' 카테고리의 다른 글

[Week 3- Day 1] 회고  (0) 2022.02.03
[Week 2- Day 5] 회고  (0) 2022.01.30
[Week 2- Day 3] 회고  (0) 2022.01.27
[Week 2- Day 2] 회고  (0) 2022.01.25
[Week 2- Day 1] 회고  (0) 2022.01.24