본문 바로가기

GPU Probing Lab

GPU Warp Scheduling / Latency Hiding 실험 진행 문서

1. 실험의 전체 목적

GPU 내부에서 warp 들이 실제로 어떻게 실행 기회를 얻고, stall 상황에서어떤 warp 가 빈틈을 채우는지를 probe 기반으로 관찰하는 것

특히 다음 질문을 중심으로 실험의 진행

같은 block 안에 여러 warp 가 존재할 때,  각 warp 의 progress 차이는 단순하 warp id 차이인가, workload 차이인가, 아니면 ready warp supply 와 memory stall 조건에 의해 변형되는가

이를 확인하기 위해 실험은 다음 방향으로 단계적으로 확장되었음

  1. 동일 workload 에서 warp 간 progress bias 가 있는지 확인
  2. 서로 다른 workload 가 progress signature 를 만드는지 확인
  3. signature 가 반복 가능하고 workload 에 귀속되는지 검증
  4. mixed workload 환경에서 signature 가 유지는되는지 확인
  5. global memory contention 조건에서 progress 가 어떻게 변환되는지 관찰
  6. ready warp supply 가 memory stall 을 얼마나 숨기는지 정량화
  7. warmup, shared memory interference 등 부가 요인을 분리 검증

 

2. 실험 진행 흐름

2.1 Same Workload Baseline

목적

가장 먼저 확ㅇ니한 것은 동일한 worload 를 수행하는 warp 들 사이에 고정된 progress bias 가 존재하는가이다.

즉, warp 0 이 핫아 더 많이 진행하거나, warp 3 이 항상 덜 진행하는 식의 warp id 기반 편향이 있는지 확인

핵심 질문

같은 일을 하는 warp 들이 같은 조건에서 실행될 때, progress 차이는 유의미한가?

해석

동일 workload 조건에서는 warp 간 progress 가 큰 구조적 차이를 보이지 않는다. 

따라서 이후 실험에서 관찰되는 progress 차이는 단순히 warp id 때문이 아닌, workload 의 성격이나 stall 조건의 차이에서 발생할 가능성이 높다.

 

2.2 Warp Execution Signature v0

목적

서로 다른 workload 가 같은 cycle budget 안에서 각기 다른 progress signature 를 만드는지  확인

핵심 질문

workload 종류가 다르면 warp progress 에도 구분 가능한 실행 signature 가 남는가?

관찰 방향

대체로 다음과 같은 ordering 이 관찰

fast_independent_alu
> shared_load
> dependent_alu_chain
> dependent_global_load

해석

절대 성능 측정이 아닌, 각 workload 가 GPU scheduler 와 memory hierarchy 에 의해 어떻게 다른 실행 흔적을 남기는지 확인하는 baseline signature 실험이다.

즉, progress 값은 속도 순위라기보다 실행 구조가 남긴 fingerprint 에 가깝다.

 

2.3 Warp Signature Repeatability

목적

앞선 warpExecutionSignaturev0 에서 관찰한 signature 가 우연한 run-to-run noise 가 아니라 반복적으로 나타나는지 확인

핵심 질문

같은 조건에서 여러 번 실행해도 workload 별 progress signature 가 유지되는가?

해석

signature 가 반복적으로 관찰된다면, 이는 단순한 측정 오차가 아니라 workload 구조에 의해 안정적으로 발생하는 hardware response 로 볼 수 있다.

이 단계는 이후 실험의 근거를 강화하는 검증 실험이다.

 

2.4 Warp Signature Permutation

목적

workload 를 warp id 에 고정하지 않고, warp id 와 workload assignment 를 회전시켜 signature 의 귀속 대상을 확인했다.

핵심 질문

progress signature 는 warp id 를 따라가는가, workload 를 따라가는가?

해석

signature 가 특정 warp id 가 아니라 workload assignment 를 따라 이동한다면, 관찰된 차이는 scheduiler 의 단순 warp id 가 편향이 아니라 workload 의 실행 특성에서 비롯된 것으로 해석할 수 있다.

 

2.5 Mixed Workload Probe

목적

앞선 실험들이 isolated condition 에서 workload 별 signature 를 확인했다면, 이 실험은 서로 다른 workload 가 같은 block 안에서 공존할 때 signature 가 어떻게 유지되거나 변형되는지 확인한다

핵심 질문

서로 다른 workload 가 섞여 있을 때도 workload 별 progress signature 는 유지되는가?

관찰 포인트

  • independent ALU warp 는 높은 progress 를 유지하는가?
  • dependent ALU chain 은 낮은 progress 를 보이는가?
  • dependent global load 는 가장 낮은 progress 와 높은 variability를 보이는가?
  • mixed composition 에서 role 별 ordering 이 유지되는가?

해석

mixed workload 환경에서도 role 기반 progress ordeering 이 대체로 유지된다.

다만 memory-dependent workload 는 run-to-run variability 가 커질 수 있다.

이는 global memory stall 이 scheduler 의 ready warp 선택, memory latency, cache 상태 등에 민감하게 반응하기 때문이다.

이 실험을 통해 다음 가설이 생긴다.

global memory dependent workload 의 progress 는 단순히 자기 자신의 latency 만으로 결정되지 않고, 주변에 ready warp 가 얼마나 존재하는지에 의해 변형될 수 있다.

 

2.6 Global Memory Contention Amplification Probe

목적

mixedWorkloadProbe 이후, global memory dependent workload 가 낮은 progress 와 높은 bariability 를 보인 이유를 더 직접적으로 확인하기 위한 후속 실험

global memory dependent workload 의 수와 address access mode 를 바꾸며 progress signature 가 어떻게 변형되는지 관찰한다.

핵심 질문

global memory dependeny warp 가 많아질수록 progress 는 단순히 감소하는가? 아니면 ready warp supply, address locality hiding 조건에 따라 다르게 변형되는가?

관찰 포인트

  • global memory dependent warp 수 증가
  • address locality 변화
  • contention 증가
  • progress 감소 여부
  • run-to-run variability 증가 여부

해석

이 실험은 단순히 memory contention 이 크면 느려진다를 확인하는 실험이 아닌

global memory signature 는 memory latency 자체뿐 아니라 scheduier 가 선택할 수 있는 ready warp supply 에 의해 함께 결정된다.

즉, global memory progress 는 isolatied latency 가 아니라 latency hiding 가능성까지 포함한 결과로 해석해야 한다.

 

2.7 Ready Warp Supply Probe

목적

global memory warp 가 stall 될 때, 주변에 실행 가능한 ready warp 가 얼마나 존재하는지가 전체 progress 구조에 어떤 영향을 주는지 확인한다

핵심 질문

ready warp 가 충분하면 memory stall 의 빈 실행 기회를 채울 수 있는가?

실험 의미

이 실험은 latency hiding ratio probe 로 넘어가기 전 단계의 개념 검증이다.

즉, memory stall 을 관찰하는 것에서 한 단계 더 나아가

  • stall 이 생긴다
  • scheduler 가 다른 ready warp 를 찾는다
  • ready warp 가 충분함녀 실행 slot 이 덜 낭비된다
  • global memory progress signature 가 변형된다.

라는 구조를 확인하기 위한 실험이다.

 

2.8 Latency Hiding Ratio Probe

목적

이전 실험에서 형성된 가설을 직접 정량화한다.

핵심 질문은 다음이다.

global memory warp 가 stall 될 때, light_alu 같은 ready warp 가 그 빈 실행 기회를 얼마나 채우는가?

측정 개념

단순 progress 비교가 아니라, 다음 관계를 보려는 실험이다

  • memory-dependent warp progress
  • ready warp progress
  • total useful progress
  • latency hiding ratio

해석

이 실험을 통해 확인하고자 하는 핵심

global memory workload 의 낮은 progress 는 단독 현사잉 아니라, 주변 ready warp 의 존재 여부에 따라 완화되거나 증폭될 수 있다.

즉, latency hiding 은 추상적인 GPU 설명이 아니라, 실제 probe 결과에서 progress redistribution 형태로 관찰될 수 있다.

 

2.9 Latency Hiding Warmup Stability Probe

목적

latency hiding ratio 관찰 결과가 초기 cache 상태, warmup 부족, 첫 실행 특이성에 의해 왜곡된 것이 아닌지 확인한다.

핵심 질문

latency hiding ratio signature 는 warmup 이후에도 안정적으로 유지되는가?

해석

GPU 실험에서는 첫 실행, cache warming, clock 상태, memory path 초기화 등이 결과에 영향을 줄 수 있다.

 

2.10 Shared Memory Ready Interference Probe

목적

ready warp 가 항상 완전히 독립적인 ALU workload 일 때만 latency hiding 에 기여하는 것은 아니다.

이 실험은 ready warp 쪽에 shared memory load 또는 shared memory interference 가 있을 때 latency hiding 구조가 어떻게 변형되는지 확인한다.

핵심 질문

ready warp 가 존재하더라도, 그 ready warp 자체가 shared memory stall 이나 bank conflict 를 만들면 latency hiding 효율은 어떻게 변하는가?

해석

이 실험은 ready warp supply 를 더 현실적으로 만든다.

즉, 단순한 ready warp 의 개수만 중요한 것이 아니라.

  • ready warp 가 실제로 얼마나 issue 가능한가
  • ready warp 자체가 stall 을 만들지는 않는가
  • shared memory path 가 새로운 병목이 되지는 않는가

 

3. 전체 실험 흐름 요약

1. Same Workload Baseline
   동일 workload에서 warp id 기반 bias가 큰지 확인

2. Warp Execution Signature v0
   workload별 progress signature가 존재하는지 확인

3. Warp Signature Repeatability
   signature가 반복 가능한지 확인

4. Warp Signature Permutation
   signature가 warp id가 아니라 workload를 따라가는지 검증

5. Mixed Workload Probe
   서로 다른 workload가 공존할 때 signature가 유지/변형되는지 관찰

6. Global Memory Contention Amplification
   global memory dependent workload의 수와 access mode에 따른 변형 관찰

7. Ready Warp Supply Probe
   ready warp 공급량이 memory stall 상황에 미치는 영향 확인

8. Latency Hiding Ratio Probe
   ready warp가 memory stall을 얼마나 숨기는지 정량화

9. Latency Hiding Warmup Stability
   warmup 이후에도 signature가 안정적인지 검증

10. Shared Memory Ready Interference
   ready warp 자체의 shared memory interference가 latency hiding에 주는 영향 확인

 

4. 현재까지의 핵심 결론

결론 1. Warp progress 차이는 단순 warp id bias가 아니다

동일 workload baseline과 permutation 실험을 통해, progress signature는 특정 warp id에 고정된 것이 아니라 workload 특성을 따라가는 것으로 해석할 수 있다.


결론 2. Workload는 구분 가능한 execution signature를 남긴다

independent ALU, dependent ALU chain, shared load, dependent global load는 같은 cycle budget에서도 서로 다른 progress pattern을 만든다.

이는 GPU 내부 실행 구조가 workload 형태에 따라 다르게 반응한다는 증거다.


결론 3. Mixed workload에서도 role 기반 signature는 유지된다

서로 다른 workload가 같은 block 안에 있어도, workload의 성격에 따른 progress ordering은 대체로 유지된다.

다만 memory-dependent workload는 variability가 커질 수 있다.


결론 4. Global memory progress는 memory latency만으로 설명되지 않는다

global memory dependent warp의 progress는 단순히 “memory가 느리다”로 끝나지 않는다.

주변에 실행 가능한 ready warp가 얼마나 있는지에 따라 scheduler가 stall을 숨길 수 있고, 그 결과 progress signature가 달라진다.


결론 5. Latency hiding은 progress redistribution으로 관찰할 수 있다

GPU의 latency hiding은 단순한 교과서적 개념이 아니라, probe 결과에서 다음 형태로 관찰된다.

memory warp stall 증가
→ ready warp 실행 기회 증가
→ ready warp progress 증가
→ total useful progress 보존 또는 완화
 

즉, latency hiding은 stall 제거가 아니라 stall 동안 다른 warp가 실행되는 구조다.


결론 6. Ready warp의 질도 중요하다

ready warp가 존재하더라도, 그 warp가 shared memory interference나 dependency chain을 가지고 있다면 latency hiding 효율은 떨어질 수 있다.

따라서 중요한 것은 단순한 warp 수가 아니라,

ready warp supply
ready warp independence
memory dependency
shared memory interference
address locality
 

의 조합이다.