워프 스케쥴링 기법에 따른 GPU 성능 분석
Analysis of GPU Performance Depending on Warp Scheduling Schemes
2
조회
0
다운로드
4
인용
0
참고문헌
키워드
초록
GPU에서 실제 연산을 담당하는 세이더코어는 다수의 워프를 동시에 할당받아 수행함으로써 연산자원 활용률을 극대화한다. 세이더코어가 할당받은 다수의 워프들 중에서 어떠한 워프를 선택하여 수행하는지에 따라 GPU의 성능은 달라질 것으로 예상된다. 효율적인 워프 스케쥴링 기법을 개발하기 위해서는 워프 스케쥴링 기법의 특성 분석이 선행되어야 한다. 본 논문에서는 워프 스케쥴링 기법에 따른 GPU의 성능을 분석하고자 한다. 무작위 스케쥴링, 라운드로빈 스케쥴링, 그리고 선입선처리 스케쥴링 기법을 분석 대상으로 사용한다. 실험 결과에 따르면, 분기 명령어를 포함하지 않는 응용프로그램을 수행하는 경우에는 스케쥴링 기법에 따른 성능 차이가 거의 없는 반면에, 분기 명령어를 다수 포함하는 응용프로그램을 수행하는 경우에는 스케쥴링 기법에 따른 성능 차이가 상당히 발생함을 알 수 있다. 그 이유는 분기 명령어는 워프 스케쥴링 기법에 따라 무작위적인 메모리 접근으로 유발되는 병목현상을 완화 또는 악화시키기기 때문으로 분석된다. 본 논문의 분석 결과는 범용 응용프로그램을 수행하는 GPU를 위한 워프 스케쥴링 기법을 개발하고자 하는 경우 가이드라인을 제시할 수 있을 것으로 기대된다.
Abstract
Shader core can process multiple warps simultaneously, enabling the GPU to improve the utilization of computational resources. The performance of the shader core depends on the warp scheduling schemes which select the warp to execute among assigned multiple warps. Therefore, we analyze the GPU performance according to three warp scheduling schemes in this work: random scheduling, round robin scheduling, and first ready first come first service scheduling schemes. Experimental results show that the performance gap between simulated warp scheduling schemes is negligible when the applications without branch instructions are executed, while the performance gap increases when the applications including lots of branch instructions are executed. The performance gap is caused by branch instructions which have strong relation to memory bottleneck depending on the warp scheduling schemes.
참고문헌 (24)
- Buck, T. Foley, "Brook for GPUs: stream computing on graphics hardware", Proceedings of 31th Annual Conference on Computer Graphics, pp.777~786 (2004)
- 김재하, "GPU 기반 테셀레이션을 이용한 연속상세단계 기법", 한국차세대컴퓨팅학회 논문지, 9(1), pp.84~92 (2013), 한국차세대컴퓨팅학회
- 이인, "디테일을 유지하는 대규모 지형의 GPU 기반 가시화 및 편집", 한국차세대컴퓨팅학회 논문지, 8(4), pp.35~46 (2012), 한국차세대컴퓨팅학회
- 윤민, "GPU를 이용한 Salsa20 스트림 암호의 병렬화", 한국차세대컴퓨팅학회 논문지, 5(1), pp.53~62 (2009), 한국차세대컴퓨팅학회
- "General-purpose computation on graphics hardware"[URL]
- "NVIDIA CUDA Programming"[URL]
- "OpenCL"[URL]
- "ATI Streaming"[URL]
- J. Meng, "Dynamic Warp Subdivision for Integrated Branch and Memory Divergence Tolerance", Proceedings of 37th International Symposium on Computer Architecture, pp.235~246 (2010)
- J. E. Thornton, "Parallel operation in the control data 6600", AFIPS Proceedings of FJCC, Part.2, 26, pp.33~40 (1964)
- M. R. Thistle, "A processor architecture for Horizon", Proceedings of Supercomputing, pp.35~41 (1988)
- "NVIDIA Corporation"[URL]
- "AMD(Advanced Micro Devices)Inc."[URL]
- W. W. L. Fung, "Dynamic Warp Formation and Scheduling for Efficient GPU Control Flow", Proceedings of 40th Microarchitecture, pp.407~420 (2007)
- B. W. Coon, "United States Patent #7,353,369: System and Method for Managing Divergent Threads in a SIMD Architecture", Assignee NVIDIA Corp, ~ (2008)
- B. W. Coon, "United States Patent #7,434,032: Tracking Register Usage During Multi-threaded Processing Using a Scorebard having Separate Memory Regions and Storing Se-quential Register Size Indicators", Assignee NVIDIA Corp, ~ (2008)
- E. Lindholm, "United States Patent #2010", 0122067: Across-Thread Out-of-Order Instruction Dispatch in a Multithreaded Microprocessor, 2010
- E. Rotenberg, "A study of control independence in superscalar processors", Proceedings of 5th International Symposium on High-Performance Computer Architecture, pp.115~124 (1999)
- B. W. Coon, "US Patent #7353369: System and method for managing divergent threads in a SIMD architecture", Assignee NVIDIA Corp, ~ (2008)
- N. B. Lakshminarayana, "Effect of Instruction Fetch and Memory Scheduling on GPU Performance", Workshop on Language, Compiler, and Architecture Support for GPGPU in conjunction with HPCA, 2010, ~
- D. C. Burger, "The Simple Scalar tool set, version 2.0", Computer Architecture News, 25(3), pp.13~25 (1997)
- A. Bakhoda, "Analyzing CUDA Workloads Using a Detailed GPU Simulator", Proceedings of 9th International Symposium on Performance Analysis of Systems and Software, pp.163~174 (2009)
- "CUDA SDK"[URL]
- "Booksim simulator"[URL]
