Skip to content

01. Inspecting interference between MIG Instances

HongBeenKim edited this page Jul 19, 2022 · 1 revision

2022.01.18.

여러 개의 MIG instance가 동시에 memory intensive task를 수행할 때,
instance 사이의 memory access isolation이 이상적으로 이루어지는지 확인하는 실험을 해보려고 합니다.

실험 설계

  1. A100 GPU에 7개의 1g.5gb 인스턴스를 할당합니다.
  2. 하나의 1g.5gb instance에서 행렬곱 kernel을 실행하고 시간을 측정합니다.
  3. 여섯 개의 1g.5gb instance 각각에서 행렬곱을 계속 반복하는 kernel을 실행합니다. 행렬의 크기는 2번 단계에서와 같게 조절합니다.
  4. 나머지 하나의 1g.5gb instance에서 2번 단계와 마찬가지로 행렬곱 kernel을 실행하고 시간을 측정합니다.
  5. 2번 단계와 4번 단계에서 측정한 시간을 비교합니다.
  6. 행렬 크기를 바꿔가며 1~5단계를 반복합니다.

실험 결과

1. 3200x3200 integer 행렬

instance 한 개에서 단독 실행했을 때의 kernel profiling 결과

instance 7개에서 동시 실행했을 때의 kernel profiling 결과

단독 실행과 동시 실행에서 측정된 시간은 각각 220 ms155 ms 입니다.

2. 10000x10000 integer 행렬

instance 한 개에서 단독 실행했을 때의 kernel profiling 결과

instance 7개에서 동시 실행했을 때의 kernel profiling 결과

단독 실행과 동시 실행에서 측정된 시간은 각각 5096 ms5048 ms 입니다.

3. 20000x20000 integer 행렬 (instance memory usage가 100%에 가까움)

instance 한 개에서 단독 실행했을 때의 kernel profiling 결과

단독 실행과 동시 실행에서 측정된 시간은 각각 39921 ms39993 ms 입니다.

행렬이 작은 경우에는 모든 instance에서 동시에 kernel이 실행될 때 오히려 latency가 짧습니다.
행렬이 큰 경우 latency에 뚜렷한 차이가 나타나지 않습니다.

Clone this wiki locally