Re-ordering Memory Requests for Improving the Performance of GPUs
0
조회
0
다운로드
2
인용
0
참고문헌
키워드
초록
Graphics Processing Units (GPUs) with massive parallel processing architecture are able to leverage thread-level parallelism. Especially, with programming models like CUDA, OpenCL, such architectures become one of the most attractive platforms for handling not only graphics but also general-purpose applications (GPGPUs). In modern GPUs, caches have been introduced to deal with applications with irregular memory access patterns. However, GPU caches exhibit poor efficiency due to constraints in terms of size as well as many performance challenges such as cache contention, resulting from launching a large number of active threads in GPUs. In this paper, we propose a technique that can order memory requests to the L1 data cache in a friendly way than the baseline cache management by using a small number of simple queues. Experimental results show that our technique can improve GPU cache performance over the baseline architecture, thus improving IPC by 4.3% on average.
Abstract
Graphics Processing Units (GPUs) with massive parallel processing architecture are able to leverage thread-level parallelism. Especially, with programming models like CUDA, OpenCL, such architectures become one of the most attractive platforms for handling not only graphics but also general-purpose applications (GPGPUs). In modern GPUs, caches have been introduced to deal with applications with irregular memory access patterns. However, GPU caches exhibit poor efficiency due to constraints in terms of size as well as many performance challenges such as cache contention, resulting from launching a large number of active threads in GPUs. In this paper, we propose a technique that can order memory requests to the L1 data cache in a friendly way than the baseline cache management by using a small number of simple queues. Experimental results show that our technique can improve GPU cache performance over the baseline architecture, thus improving IPC by 4.3% on average.
참고문헌 (31)
- J. D. Owens, "A Survey of Genera-Purpose Computation on Graphics Hardware", Eurographics 2005, State of the Art Reports, pp.21~51 (2005)
- S. Ryoo, "Optimization Principles and Application Performance Evaluation of a Multithreaded GPU using CUDA", PPoPP 2008 (2008)
- NVIDIA, "CUDA C Programming Guide", ~ (2012)
- A. Munshi, "The OpenCL Specification", ~ (2011)
- M. Gebhart, "Unifying primary cache, scratch, and register file memories in a throughput processor", Proceedings of the 2012 45th Annual IEEE, 2012, 96~106
- O. Kayıran, "Neither more nor less: Optimizing threadlevel parallelism for GPGPUs", Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques, ser. PACT, pp.157~166 (2013)
- V. Narasiman, "Improving GPU Performance via Large Warps and Two-Level Warp Scheduling", MICRO (2011)
- M. Gebhart, "Energy-efficient Mechanisms for Managing Thread Context in Throughput Processors", Proc. of the 38thInternational SymposiumonComputerArchitecture(ISCA-38) (2011)
- W. W. L. Fung, "Dynamic Warp Formation and Scheduling for Efficient GPU Control Flow", MICRO (2007)
- J. Meng, "Dynamic warp subdivision for integrated branch and memory divergence tolerance", Proceedings of the 37th Annual International Symposium on Computer Architecture, ser. ISCA, pp.235~246 (2010)
- M. Rhu, "Maximizing SIMD resource utilization in GPGPUs with SIMD lane permutation", Proceedings of the 40th Annual International Symposium on Computer Architecture, ser. ISCA, pp.356~367 (2013)
- Y. Yang, "A GPGPU Compiler for Memory Optimization and Parallelism Management", Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, pp.86~97 (2010)
- B. Jang, "Exploiting Memory Access Patterns to Improve Memory Performance in Data-Parallel Architectures", IEEE Trans. Parallel and Distributed Systems, 22(1), pp.105~118 (2011)
- W. Jia, "MRPB:Memory Request Prioritization for Massively Parallel Processors", HPCA 2014 (2014)
- X. Chen, "Adaptive cache bypass and insertion for many-core accelerators", Proceedings of the 47th Annual IEEE, 2014, ~
- N. Duong, "Improving cache management policies using dynamic reuse distances", Proceedings of the 2012 45th Annual IEEE, 2012, 389~400
- X. Xie, "Coordinated Static and Dynamic Cache Bypassing for GPUs", HPCA 2015 (2015)
- W. Jia, "Characterizing and improving the use of demand-fetched caches in GPUs", Proceedings of the 26thACMInternational ConferenceonSupercomputing,ser.ICS, pp.15~24 (2012)
- T. G. Rogers, "Cache-conscious wavefront scheduling", MICRO (2013)
- A. Jog, "OWL: Cooperative Thread Array Aware Scheduling Techniques for Improving GPGPU Performance", ASPLOS 2013 (2013)
- S.-Y. Lee, "CAWA: Coordinated Warp Scheduling and Cache Prioritization for Critical Warp Acceleration of GPGPU Workloads", ISCA 2015 (2015)
- J. Chen, "Guided Region-Based GPU Scheduling: Utilizing Multi-thread Parallelism to Hide Memory Latency", IEEE 27th International Symposium on Parallel and Distributed Processing (2013)
- NVIDIA, "Whitepaper: NVIDIA’s Next Generation CUDA Compute and Graphics Architecture:Fermi", ~
- NVIDIA, "NVIDA Tegra Multiprocessor Architecture", ~ (2010)
- A. Bakhola, "Analyzing Cuda Workloads Using a Detailed GPU simulator", Proc. Of the 2009 International Symposium on Analysis of Systems and Software (ISPASS-2009) (2009)
- "CUDA SDK"[URL]
- S. A. McKee, "Access Ordering and Memory-Conscious Cache Utilization", HPCA 1995 (1995)
- K. Fang, "Thread-Fair Memory Reordering", 3rd JILP Workshop on Computer Architecture Competitions (2012)
- 두 콩 튜안, "A New Thread Block Scheduling Technique for Improving the Performance of GPGPU Architecture", 한국차세대컴퓨팅학회 논문지, 11(4), pp.7~14 (2015), 한국차세대컴퓨팅학회
- 박세진, "GPGPU 응용의 고성능 원격수행을 위한 OpenCL 기반 오프로딩 프레임워크", 한국차세대컴퓨팅학회 논문지, 9(2), pp.44~53 (2013), 한국차세대컴퓨팅학회
- 정인규, "GPGPU를 이용한 Fuzzy C-Means 알고리즘의 구현 및 성능분석", 한국차세대컴퓨팅학회 논문지, 9(5), pp.27~37 (2013), 한국차세대컴퓨팅학회
