@@ -78,7 +78,7 @@ PyTorch에 포함된 분산 패키지(예. ``torch.distributed``)는 연구자
78
78
``dist.init_process_group `` 에서 일어나는 놀라운 일을 살펴볼 것이지만, 기본적으로는
79
79
프로세스가 자신의 위치를 공유함으로써 서로 통신할 수 있도록 합니다.
80
80
81
- 지점 -대-지점 간(Point-to-Point) 통신
81
+ 점 -대-점 간(Point-to-Point) 통신
82
82
---------------------------------------
83
83
84
84
.. figure :: /_static/img/distributed/send_recv.png
@@ -89,13 +89,13 @@ PyTorch에 포함된 분산 패키지(예. ``torch.distributed``)는 연구자
89
89
송신과 수신
90
90
91
91
92
- 하나의 프로세스에서 다른 프로세스로 데이터를 전송하는 것을 지점 -대-지점 간 통신이라고 합니다.
92
+ 하나의 프로세스에서 다른 프로세스로 데이터를 전송하는 것을 점 -대-점 간 통신이라고 합니다.
93
93
지점간 통신은 ``send `` 와 ``recv `` 함수 또는 즉시 응답하는(*immediate * counter-parts)
94
94
``isend `` 와 ``irecv `` 를 사용합니다.
95
95
96
96
.. code :: python
97
97
98
- """ 블로킹(blocking) 지점 -대-지점 간 통신"""
98
+ """ 블로킹(blocking) 점 -대-점 간 통신"""
99
99
100
100
def run (rank , size ):
101
101
tensor = torch.zeros(1 )
@@ -118,7 +118,7 @@ PyTorch에 포함된 분산 패키지(예. ``torch.distributed``)는 연구자
118
118
119
119
.. code :: python
120
120
121
- """ 논-블로킹(non-blocking) 지점 -대-지점 간 통신"""
121
+ """ 논-블로킹(non-blocking) 점 -대-점 간 통신"""
122
122
123
123
def run (rank , size ):
124
124
tensor = torch.zeros(1 )
@@ -145,7 +145,7 @@ PyTorch에 포함된 분산 패키지(예. ``torch.distributed``)는 연구자
145
145
그러나, ``req.wait() `` 를 실행한 후에는 통신이 이루어진 것을 보장받을 수 있기 때문에,
146
146
``tensor[0] `` 에 저장된 값은 1.0이 됩니다.
147
147
148
- 지점 -대-지점 간 통신은 프로세스 간 통신에 대한 세밀한 제어를 원할 때 유용합니다.
148
+ 점 -대-점 간 통신은 프로세스 간 통신에 대한 세밀한 제어를 원할 때 유용합니다.
149
149
`바이두(Baidu)의 DeepSpeech <https://github.com/baidu-research/baidu-allreduce >`__ 나
150
150
`페이스북(Facebook)의 대규모 실험 <https://research.fb.com/publications/imagenet1kin1h/ >`__
151
151
에서 사용하는 것과 같은 멋진 알고리즘을 구현할 때 사용할 수 있습니다.
@@ -178,7 +178,7 @@ PyTorch에 포함된 분산 패키지(예. ``torch.distributed``)는 연구자
178
178
+----------------------------------------------------+-----------------------------------------------------+
179
179
180
180
181
- 지점 -대-지점 간 통신과 달리 집합 통신은 **그룹 ** 의 모든 프로세스에 걸친 통신 패턴을
181
+ 점 -대-점 간 통신과 달리 집합 통신은 **그룹 ** 의 모든 프로세스에 걸친 통신 패턴을
182
182
허용합니다. 그룹은 모든 프로세스의 부분 집합입니다. 그룹을 생성하기 위해서는
183
183
``dist.new_group(group) `` 에 순서(rank) 목록을 전달합니다. 기본적으로, 집합 통신은
184
184
**월드(world) ** 라고 부르는 전체 프로세스에서 실행됩니다. 예를 들어, 모든 프로세스에
@@ -189,7 +189,7 @@ PyTorch에 포함된 분산 패키지(예. ``torch.distributed``)는 연구자
189
189
190
190
""" All-Reduce 예제 """
191
191
def run (rank , size ):
192
- """ 간단한 지점 -대-지점 간 통신 """
192
+ """ 간단한 점 -대-점 간 통신 """
193
193
group = dist.new_group([0 , 1 ])
194
194
tensor = torch.ones(1 )
195
195
dist.all_reduce(tensor, op = dist.reduce_op.SUM , group = group)
@@ -365,7 +365,7 @@ PyTorch에는 현재 ``dist.all_reduce(tensor, op, group)`` 외에도 6개의
365
365
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
366
366
367
367
추가로 DeepSpeech의 효율적인 링 올리듀스(ring allreduce)를 구현하고 싶다고 가정해보겠습니다.
368
- 이것은 지점 -대-지점 집합 통신(point-to-point collectives)으로 쉽게 구현할 수 있습니다.
368
+ 이것은 점 -대-점 집합 통신(point-to-point collectives)으로 쉽게 구현할 수 있습니다.
369
369
370
370
.. code :: python
371
371
@@ -444,7 +444,7 @@ CUDA Tensor에 대한 집합 연산 구현은 NCCL 백엔드에서 제공하는
444
444
**MPI 백엔드 **
445
445
446
446
MPI(Message Passing Interface)는 고성능 컴퓨팅 분야의 표준 도구입니다.
447
- 이는 지점 -대-지점 간 통신과 집합 통신을 허용하며 ``torch.distributed `` 의 API에
447
+ 이는 점 -대-점 간 통신과 집합 통신을 허용하며 ``torch.distributed `` 의 API에
448
448
영감을 주었습니다. 다양한 목적에 따라 최적화된 몇몇 MPI 구현체들(예.
449
449
`Open-MPI <https://www.open-mpi.org/ >`__,
450
450
`MVAPICH2 <http://mvapich.cse.ohio-state.edu/ >`__,
0 commit comments