Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

beginner_source/hta_intro_tutorial.rst 번역 #907

Merged
merged 4 commits into from
Oct 15, 2024

Conversation

jaeseong98
Copy link
Contributor

라이선스 동의

변경해주시는 내용에 BSD 3항 라이선스가 적용됨을 동의해주셔야 합니다.

더 자세한 내용은 기여하기 문서를 참고해주세요.

동의하시면 아래 [ ][x]로 만들어주세요.

  • 기여하기 문서를 확인하였으며, 본 PR 내용에 BSD 3항 라이선스가 적용됨에 동의합니다.

관련 이슈 번호

이 Pull Request와 관련있는 이슈 번호를 적어주세요.

이슈 또는 PR 번호 앞에 #을 붙이시면 제목을 바로 확인하실 수 있습니다. (예. #999 )

PR 종류

이 PR에 해당되는 종류 앞의 [ ][x]로 변경해주세요.

  • 오탈자를 수정하거나 번역을 개선하는 기여
  • 번역되지 않은 튜토리얼을 번역하는 기여
  • 공식 튜토리얼 내용을 반영하는 기여
  • 위 종류에 포함되지 않는 기여

PR 설명

이 PR로 무엇이 달라지는지 대략적으로 알려주세요.

@jaeseong98 jaeseong98 changed the title beginner_source/bettertransformer_tutorial.rst 번역 beginner_source/hta-intro-tutorial.rst 번역 Aug 31, 2024
@jaeseong98 jaeseong98 changed the title beginner_source/hta-intro-tutorial.rst 번역 beginner_source/htaintro_tutorial.rst 번역 Aug 31, 2024
@jaeseong98 jaeseong98 changed the title beginner_source/htaintro_tutorial.rst 번역 beginner_source/hta_intro_tutorial.rst 번역 Aug 31, 2024
Copy link
Contributor

@Dabinishere Dabinishere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적으로 내용이 매끄럽고 잘 번역된 것 같습니다. 사소한 오류만 체크해두었습니다. 수고하셨습니다.

=======================================

**Author:** `Anupam Bhatnagar <https://github.com/anupambhatnagar>`_
**저자:** `Anupam Bhatnagar <https://github.com/anupambhatnagar>`_
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저자 외에도 번역으로 번역자 표기를 함께 해주시면 좋을 것 같습니다.

@@ -1,40 +1,37 @@
Introduction to Holistic Trace Analysis
전체론적 추적 분석 소개
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체론적 추적 분석(Holistic Trace Analysis) 소개 로 표기하는 것도 제안드립니다.

In this tutorial, we demonstrate how to use Holistic Trace Analysis (HTA) to
analyze traces from a distributed training job. To get started follow the steps
below.
이 튜토리얼에서는 분산 학습 작업의 추적을 분석하기 위해 전체론적 추적 분석(Holistic Trace Analysis, HTA)을 사용하는 방법을 보여줍니다. 시작하려면 아래 단계를 따르세요.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6, 7, 8행을 사용하여 써진 문장은 똑같이 6, 7, 8행을 모두 사용해서 작성해주시면 유지 보수하기가 좋을 것 같습니다.

~~~~~~~~~~~~~~~

Launch a Jupyter notebook and set the ``trace_dir`` variable to the location of the traces.
Jupyter 노트북을 실행하고 `trace_dir` 변수를 추적 파일이 있는 위치로 설정하세요.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

trace_dir의 표기가 앞 뒤로 ` 가 하나씩 빠진 것 같습니다. 확인 후 수정해주시면 좋을 것 같아요.

When the ``visualize`` argument is set to ``True`` in the `get_temporal_breakdown
<https://hta.readthedocs.io/en/latest/source/api/trace_analysis_api.html#hta.trace_analysis.TraceAnalysis.get_temporal_breakdown>`_
function it also generates a bar graph representing the breakdown by rank.
`get_temporal_breakdown <https://hta.readthedocs.io/en/latest/source/api/trace_analysis_api.html#hta.trace_analysis.TraceAnalysis.get_temporal_breakdown>`_ 함수에서 `visualize` 인수를 `True`로 설정하면 랭크별 분석을 나타내는 막대 그래프도 생성됩니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

마찬가지로 visualize와 True의 표기 앞 뒤로 ` 가 하나씩 빠진 것 같습니다.

use the ``ranks`` argument in the `get_idle_time_breakdown
<https://hta.readthedocs.io/en/latest/source/api/trace_analysis_api.html#hta.trace_analysis.TraceAnalysis.get_idle_time_breakdown>`_
function. The idle time breakdown can be generated as follows:
기본 임계값은 30 나노초이며 `consecutive_kernel_delay` 인수를 사용하여 구성할 수 있습니다. 기본적으로 유휴 시간 분석은 랭크 0에 대해서만 계산됩니다. 다른 랭크에 대해 분석을 계산하려면 `get_idle_time_breakdown <https://hta.readthedocs.io/en/latest/source/api/trace_analysis_api.html#hta.trace_analysis.TraceAnalysis.get_idle_time_breakdown>`_ 함수에서 `ranks` 인수를 사용하세요. 유휴 시간 분석은 다음과 같이 생성할 수 있습니다:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 consecutive_kernel_delay 와 ranks의 앞 뒤로 ` 표기가 둘 씩 표기되어야 합니다. 전체적으로 한번 살펴보시면 좋을 듯 합니다.

Copy link
Contributor

@aromadsh aromadsh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 26
#create the environment env_name
#env_name 환경 생성
conda create -n env_name

conda create -n 명령어가 가상환경을 생성하는 거라서
"env_name 가상환경 생성" 은 어떨지 의견을 드려봅니다~!

Copy link
Member

@hyoyoung hyoyoung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

긴 문서 번역하느라 수고하셨습니다.
전반적으로 잘되어있는데 몇군데 확인 사항을 남기니
보시고 필요한 부분은 적용 부탁드립니다

@@ -1,40 +1,38 @@
Introduction to Holistic Trace Analysis
전체론적(Holistic Trace Analysis) 추적 분석 소개
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

글 제목이 길어지면 아래의 ===도 같거나 더 길게 추가되어야합니다

=======================================

**Author:** `Anupam Bhatnagar <https://github.com/anupambhatnagar>`_
**저자:** `Anupam Bhatnagar <https://github.com/anupambhatnagar>`_ **번역**: `Jaeseong Park <https://github.com/jaeseong98>`_
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

번역자는 줄내림해서 써주세요

time for a specific job. Are they primarily engaged in computation, communication,
memory events, or are they idle? The temporal breakdown feature provides a detailed
analysis of the time spent in these three categories.
GPU를 효과적으로 활용하기 위해서는 특정 작업에 대해 GPU가 시간을 어떻게 사용하고 있는지 이해하는 것이 중요합니다. GPU가 주로 계산, 통신, 메모리 이벤트에 사용되고 있는지, 아니면 유휴 상태인지? 시간적 분석 기능은 이 세 가지 범주에서 사용된 시간에 대한 상세한 분석을 제공합니다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

줄내림은 원본 문서와 비슷하게 맞춰주세요.
마침표에서 줄내림해도 괜찮을거 같습니다

be attributed due to insufficient information. The likely causes include
synchronization among CUDA streams using CUDA events and delays in launching
kernels.
* **기타 대기:** 현재 정보가 부족하여 귀속시킬 수 없는 유휴 시간이 이 범주에 포함됩니다. 가능한 원인으로는 CUDA 이벤트를 사용한 CUDA 스트림 간의 동기화와 커널 실행 지연 등이 있습니다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

include를 귀속한다고 번역하신거 같은데, 뜻은 통하나 조금 더 쉬운 단어로 바꾸는게 가능할까요?

The host wait time can be interpreted as the time when the GPU is stalling due
to the CPU. To attribute the idle time as kernel wait we use the following
heuristic:
호스트 대기 시간은 CPU로 인해 GPU가 정체되는 시간으로 해석할 수 있습니다. 유휴 시간을 커널 대기로 귀속시키기 위해 우리는 다음과 같은 휴리스틱을 사용합니다:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

휴리스틱은 임시방편으로 쓰거나 혹은
휴티스틱(heuristic)정도로 쓰셔도 좋을거 같습니다

trace file, and the new file contains the suffix ``_with_counters`` in its name.
Users have the option to generate the counters for multiple ranks by using the
``ranks`` argument in the ``generate_trace_with_counters`` API.
메모리 대역폭 카운터는 메모리 복사(memcpy) 및 메모리 설정(memset) 이벤트에 의해 데이터를 H2D, D2H 및 D2D로 복사할 때 사용된 메모리 복사 대역폭을 측정합니다. HTA는 또한 각 CUDA 스트림에서 진행 중인 작업의 수를 계산합니다. 우리는 이를 **큐 길이**라고 부릅니다. 스트림의 큐 길이가 1024 이상일 때, 그 스트림에 새로운 이벤트가 스케줄될 수 없으며, GPU 스트림의 이벤트가 처리될 때까지 CPU는 정지됩니다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stall은 보통 stop과는 다르게 어떤 원치 않는 이유로 멈춰있다고 쓸때가 많으니까
stall은 멈춰있다고만 쓰셔도 좋을거 같습니다

To sum up, a higher communication computation overlap is desirable. To calculate
the overlap percentage for each rank, we measure the following ratio:
분산 학습에서 상당한 시간이 GPU 간의 통신 및 동기화 이벤트에 소비됩니다. 높은 GPU 효율성(TFLOPS/GPU)을 달성하기 위해서는 GPU가 계산 커널로 과도하게 할당된 상태를 유지하는 것이 중요합니다. 즉, GPU는 해결되지 않은 데이터 의존성으로 인해 차단되어서는 안 됩니다. 계산이 데이터 의존성에 의해 차단되는 정도를 측정하는 한 가지 방법은 통신 계산 오버랩을 계산하는 것입니다. 통신 이벤트가 계산 이벤트와 겹칠 때 더 높은 GPU 효율성이 관찰됩니다. 통신과 계산의 오버랩이 부족하면 GPU가 유휴 상태가 되어 낮은 효율성으로 이어집니다.
요약하자면, 더 높은 통신 계산 오버랩이 바람직합니다. 각 랭크에 대한 오버랩 비율을 계산하기 위해 다음 비율을 측정합니다:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오버랩은 중첩으로 바꿔도 좋을거 같습니다

These types of inefficiencies can be addressed by examining the CPU
operators that are contributing to the slowdown, increasing the batch
size and applying operator fusion.
* **호스트 대기:** CPU가 GPU를 완전히 활용하기 위해 충분히 빠르게 커널을 대기열에 넣지 않아 발생하는 GPU의 유휴 시간을 말합니다. 이러한 유형의 비효율성은 속도 저하에 기여하는 CPU 연산자를 검사하고, 배치 크기를 늘리고, 연산자 융합을 적용하여 해결할 수 있습니다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이러한 유형의 비효율성은 속도 저하에 기여하는 CPU 연산자를 검사하고, 배치 크기를 늘리고, 연산자 융합을 적용하여 해결할 수 있습니다.

이 문장이 약간 복잡해 보이는데

해당 유형의 비효율성을 해결하기위해 속도 저하에 기여하는 CPU 연산자를 검사하고, 배치 크기를 늘리고, 연산자 융합을 적용 할 수 있습니다.

요정도로 바꿔보면 어떨까요?

Copy link
Member

@hyoyoung hyoyoung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good

@hyoyoung hyoyoung requested a review from 9bow October 6, 2024 11:36
@hyoyoung hyoyoung merged commit f0e9318 into PyTorchKorea:master Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants