쿠버네티스를 이용한 GPU 트래픽 분산 처리 시스템 구현

및 성능지표 향상 결과 도출

위 목표를 바탕으로 정보를 정리 해 보았다.

1. 로드밸런싱 알고리즘 설계 시 GFLOPS(GPU연산 처리 능력 기준)을 바탕으로 알고리즘 설계

이기종 분산 기계학습 플랫폼 환경을 위한 로드 밸런싱 방법, 이를 수행하기 위한 기록 매체 및 장치

→ 로드밸런싱을 기존 라운드 로빈(Round Robin), 최소 연결(Minimum Connections), IP 해시(IP Hash) 가 아닌 GFLOPS를 기준으로 하여 GPU할당량에 따른 service로의 분배를 진행함

<aside> 💡 service는 세 개의 워커노드에서 동일한 작업을 하도록 설계함 → control plane의 네임스페이스를 기준으로 실제 서비스(예를 들면 Object Detection)의 종류를 정한 뒤 실제 서비스에 대한 서비스를 생성하고 워커노드에 분배한 뒤 이기종 분산 기계학습을 수행

</aside>

2. 외부 HTTP(S) 요청을 수행하기 위한 인그레스가 필요함

인그레스 → 로드밸런서 → 각 서비스노드(레플리카셋[파드])로의 경로를 따름.

인그레스 작업을 위한 SSL인증서 발급 필요

3. GPU 로드밸런싱에 대한 자료와 시스템을 벤치마킹

GPU로드밸런싱 라이브러리 troodon과 GFLOPS를 참조해서 로드밸런서의 알고리즘을 정할 것

4. Google Coral USB Accelerator사용

세 개의 워커노드에 TPU를 장착하여 neural networking을 수월히 진행할 수 있도록 함


결론:

GPU사용량을 기준으로 한 알고리즘을 사용하면 Object Detection 뿐 아니라 Google Coral USB Accelerator에서 제공하는 알고리즘(TF의 알고리즘들)을 기반으로 한 작업을 충분히 가속할 수 있고, 이를 오케스트레이션하는 것에 성공하면 하나의 디바이스에 접근하여 처리하는 것 보다 트래픽과 GPU사용의 분산 처리에 있어 높은 성능 향상을 기대 해 볼 수 있음