Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BFS
- LeetCode
- 코딩테스트
- Deeplearning
- NLP
- Django
- LLM
- Python
- 기계학습
- 알고리즘
- 프로그래머스
- deque
- 프롬프트
- 코테
- Linear Model
- dl
- rnn
- Programmers
- ChatGPT
- Linear Regression
- 파이썬
- GPT
- 머신러닝
- prompt engineering
- 일기
- transformer
- attention
- gradient descent
- machinelearning
- 부스트캠프
Archives
- Today
- Total
크크루쿠쿠
Pytorch Multi-GPU 본문
오늘날의 DL은 엄청난 Data와의 싸움
-> 처리하기 위한 좋은 장비들이 필요함.
Multi-GPU 어떻게 GPU를 다룰 것인가.
개념정리
- Single vs. Multi
- GPU vs. Node
node->System 즉 1대의 컴퓨터
- Single Node Single GPU
- Single Node Multi GPU
- Multi Node Multi GPU (어려움)
TensorRT를 사용해 GPU 효율적으로 사용.
Model parallel
- 다중 GPU에 학습을 분산하는 두 가지 방법 -> 모델을 나누기/ 데이터를 나누기
- alexnet에서 보는거처럼 모델 나누는법은 예전부터 씀.
- 모델의 병목, 파이프라인의 어려움으로 인해 고난이도임.
class ModelParallelResNet50(ResNet):
def __init__(self, *args, **kwargs):
super(ModelParallelResNet50, self).__init__(
Bottleneck, [3, 4, 6, 3], num_classes=num_classes, *args, **kwargs)
self.seq1 = nn.Sequential(
self.conv1, self.bn1, self.relu, self.maxpool, self.layer1, self.layer2
).to('cuda:0')
self.seq2 = nn.Sequential(
self.layer3, self.layer4, self.avgpool,
).to('cuda:1')
self.fc.to('cuda:1')
def forward(self, x):
x = self.seq2(self.seq1(x).to('cuda:1'))
return self.fc(x.view(x.size(0), -1))
Data parallel
- 데이터를 나눠 GPU에 할당후 결과의 평균을 취하는 방법
- minibatch 수식과 유사하지만 한번에 여러 GPU에서 수행
- Pytorch 에서는 두가지 방식 제공
DataParallel, DistrubutedDataParallel
- DataParallel -> 단순 데이터 분배후 평균을 취해서 GPU 사용 불균형 문제 발생, Batch 사이즈 감소( GPU 병목)
- DistrubutedDataParallel -> 각 CPU마다 process 생성하여 개별 GPU에 할당: 기본적으로 DataParallel로 하나 개별적으로 연산의 평균을 냄
parallel_model = torch.nn.DataParallel(model) #이게 끝이다
'DeepLearning > 부스트캠프 AI Tech' 카테고리의 다른 글
Pytorch Troubleshooting (0) | 2021.08.20 |
---|---|
Pytorch Hyperparameter Tuning (0) | 2021.08.20 |
Pytorch model 불러오기(transfer learning) (0) | 2021.08.19 |
Pytorch Dataset & Dataloader (0) | 2021.08.18 |
Pytorch AutoGrad & Optimizer (0) | 2021.08.18 |
Comments