GPGPU programming is burgeoning technique to exploit parallelism on developing programs. However, there is no framework that handles assigning devices to programs. This situation leads low total resource utilization. Also, current framework does not consider application characteristics, current device loads, memory contention and data that can affect performance of applications. This paper proposes load balancing framework that balances loads of OpenCL devices. This framework suggests workload decomposition mechanism that is key technique to support fine-grained load balancing and online profiling, needed by load balancing algorithm. Also, it proposes load balancing algorithm that can effectively balances loads of CPU and GPUs. This framework shows 10~40% performance improvement on mobile device.
GPGPU 프로그래밍은 병렬 프로그램을 개발하는데 있어서 급성장하는 기술이다. 그러나 처리 장치를 프로그램에 적합하게 할당하는 프레임워크가 존재하지 않는다. 이와 같은 상황은 낮은 전체 자원 이용률을 가져오게 된다. 또한, 현재의 프레임워크는 어플리케이션의 특성, 현재 장치의 부하, 메모리 충돌, 그리고 데이터와 같이 어플리케이션의 성능에 영향을 끼치는 요소들을 고려하지 않고 있다. 이 논문은 균형 있게 부하를 OpenCL 장치에 분산하는 부하 분산 프레임워크를 제시한다. 이 프레임워크는 고른 부하 분산과 그에 필요한 온라인 프로파일링을 위한 중요한 기술인 workload decomposition 메커니즘을 제시한다. 또한, 효율적으로 CPU와 GPU들의 부하를 분산하는 부하 분산 알고리즘을 제시한다. 이 프레임워크는 이동기기에서 10~40% 성능 향상을 가져온다.