Recent Posts
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 |
Tags
- REACT
- ML
- dl
- algorithm
- Torch
- FGVC
- Vision
- Front
- Python
- SSL
- 머신러닝
- web
- PRML
- 3d
- cs
- math
- Depth estimation
- 알고리즘
- FineGrained
- nerf
- clean code
- pytorch
- computervision
- 딥러닝
- classification
- GAN
- 자료구조
- CV
- nlp
- Meta Learning
- Today
- Total
KalelPark's LAB
[Pytorch] processing time 정확히 측정하기 - torch.cuda.synchronize() 본문
Python/Pytorch
[Pytorch] processing time 정확히 측정하기 - torch.cuda.synchronize()
kalelpark 2023. 3. 22. 01:42
Pytorch에서 CUDA 호출은 asynchronize이기 때문에, 코드를 동기화 해줘야 합니다.
시간을 측정할 때, 사용됩니다. torch.cuda.Event()는 device의 progress를 모니터링하는데
사용할 수 있는 synchronization markers입니다. -> CUDA stream 내부 명령 흐름 중 특정 지점에 표시를 남기는 것입니다.
정확하기 시간을 측정하고자 한다면, synchronize를 해야한다고, 공식 문서에서 언급했습니다.
이벤트가 처음 record되거나, 다른 프로세스를 내보낼 때, 기본 CUDA 이벤트가 느리게 초기화 됩니다.
생성 후에는 동일한 장치의 stream만 event로 기록할 수 있습니다. 그러나 모든 장치의 stream은 이벤트를 기다릴 수 있습니다.
start = torch.cuda.Event(enable_timing=True)
end = torch.cuda.Event(enable_timing=True)
start.record()
z = x + y
end.record()
# Waits for everything to finish running
torch.cuda.synchronize()
print(start.elapsed_time(end))
Reference
https://www.notion.so/torch-processing-time-torch-cuda-synchronize-f42f766017624efb8c9d21129f3732b3
'Python > Pytorch' 카테고리의 다른 글
[PYTORCH] nn.Unfold란? (0) | 2023.05.10 |
---|---|
[Pytorch] Multi-GPU 제대로 사용하기 (0) | 2023.03.19 |
[Pytorch] torch.gather 코드로 간략하게 이해하기 (0) | 2023.03.16 |
[ Pytorch ] Tensor를 나누는 방법들, Split, Chunk란? (0) | 2023.01.25 |
[ Pytorch ] Data Sampler & Sequence Bucketing? (0) | 2023.01.24 |
Comments