General-Purpose computing on Graphics Processing Units (GPGPUs) are becoming one of the most attractive computing platforms for handling high performance computing applications. This trend is more and more increasing especially with the help of new parallel programming models like CUDA and OpenCL, etc. The state-of-the-art GPGPU schedulers are likely to allocate as many as possible number of thread blocks into streaming multiprocessors. In fact, this is not always the optimal way to maximize the hardware utilization. This paper studies the drawbacks of the common-used round-robin scheduling at the thread block level. After that, we propose a new technique that can dynamically adjust the number of thread blocks to be assigned to streaming multiprocessors depending on the level of memory and interconnection network contention. Our simulation results on a 15-core GPGPU platform show that the proposed technique provides better performance over the baseline round-robin scheduling by around 6.3% on average.
한국어
그래픽 처리장치 기반 병렬컴퓨은(GPGPU) 응용로그램을 처리하기 한 가장 매력인 고성능 연산 랫폼 하나가 되고 있다. 이러한 경향은 CUDA, OpenCL 등과 같은 병렬 로그래 모델의 사용으로 인해 더욱 증 가하고 있다. GPGPU 구조에서, 최신 GPGPU 스러를 활용하면 스트리 멀티로세서에 스드 블록을 최 한 할당할 수 있다. 하지만, 이러한 스링은 연산 자원 활용률을 극화하는 최의 방법은 아니라는 문제을 가지고 있다. 본 논문에서는 GPGPU 구조의 성능 향상을 해, 스드 블록 벨에서 일반으로 사용되는 라운드 로빈 스링의 단을 분석하고, 동으로 스드 블록의 수를 변경하는 새로운 스링 기법을 제안한다. 제안 된 기법은 메모리와 내부 연결망의 경합에 따라 스트리 로세서에 할당되는 스드 블록의 수를 동으로 변경한 다. 실험결과, 15개의 코어를 가진 GPGPU 랫폼에서 제안된 기법은 라운드 로빈 스링과 비교하여 평균 6.3%의 성능향상을 보임을 알 수 있다.
목차
요약 Abstract 1. Introduction 2. Related Work 3. Background 4. Proposed Technique 5. Experimental Methodology 6. Results and Discussion 7. Conclusions Acknowledgments Reference