Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling
Paper · 2020 · Mahmoud Khairy, Zhesheng Shen, Tor M. Aamodt et al.
Summary
GPU vendors change their machine ISAs and microarchitectures with almost every generation and rarely document them. Academic simulators therefore fall behind, and research built on outdated baselines can reach wrong conclusions. Accel-Sim tackles this with three components. The first is a frontend that can run either trace-driven simulation of NVIDIA's native SASS, using traces captured with NVBit, or execution-driven simulation of the virtual ISA PTX. The second is a heavily revised, more configurable GPGPU-Sim performance model, released as GPGPU-Sim 4.0. The third is validation tooling: microbenchmarks, an automatic parameter tuner and correlation plots built on counters that match NVIDIA profiler outputs. Because SASS traces can be taken from any CUDA binary, the framework also handles closed-source, hand-tuned libraries such as cuDNN. Compared with GPGPU-Sim 3.x, it cuts cycle error by 79 percentage points across 80 workloads, and it is validated on Kepler through Turing GPUs. This matters because a better-calibrated baseline changes which architectural ideas look promising.
Key points
- Cycle error drops by 79 percentage points versus the prior state of the art on a Volta V100. The evaluation covers 80 workloads with 1,945 kernel instances, and the reported mean error is about 15%.
- Accel-Sim additionally simulates 60 Deepbench workloads (11,440 kernel instances). These rely on closed-source SASS kernels that have no PTX version, which no other open-source simulator could run.
- The framework models four NVIDIA generations: Kepler, Pascal, Volta and Turing. Simulation speed is about 12.5 KIPS in trace mode and about 6 KIPS in execution mode.
- Counter-by-counter correlation revealed several undocumented hardware features:
- a streaming, adaptive L1 data cache;
- sectored L1 and L2 caches;
- sub-warp, sector-based memory coalescing;
- an L2 write policy that saves bandwidth when reads touch only part of a sector.
- Two case studies show how baseline choice changes conclusions:
- Out-of-order memory access scheduling looks weak on the old model but gives clear gains with a detailed memory system.
- The L1 throughput bottleneck has disappeared on modern GPUs, which weakens the motivation for L1-bypassing schemes.
Interesting ideas
- I1. Separate the performance model from the functional ISA. Traces are converted into an ISA-neutral intermediate form, and a small definition file maps each opcode to an execution unit. Supporting a new ISA then means writing a mapping rather than a full emulator, which is useful whenever an upstream format keeps changing.
- I2. Offer two frontends on one core model. Trace mode gives speed and coverage, while execution mode remains available for studies that depend on actual data values or synchronization. Researchers choose the mode based on their study instead of being locked into one.
- I3. Make simulator outputs comparable to real measurements. Designing the simulator's counters to correspond one-to-one with what hardware profilers report allows automatic, fine-grained comparison. Any modeling project can apply this by aligning its metrics with real-world measurements from the start.
- I4. Turn validation into a tuning loop. Targeted microbenchmarks, an automated parameter tuner and correlation plots together make calibration repeatable rather than a one-off manual effort. This suits any model that must track a moving target over time.
- I5. Re-test published conclusions on an updated baseline. Re-running known optimizations on a more accurate baseline shows how stale assumptions can hide or exaggerate benefits. This is a cheap sanity check for evaluations in any field.
Institutions
Fields, topics and concepts
📚 Shelves 3The field of science this work belongs to (OpenAlex fields).Computer Science · 18,614 worksHardware and Architecture · 167 worksComputer Graphics and Computer-Aided Design · 16 works
🧭 Topics 1Research subjects and languages the work is about.GPU & parallel computing · 41 works
Cite
Cite as Mahmoud Khairy, Zhesheng Shen, Tor M. Aamodt and Timothy G. Rogers. 2020. Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling. ISCA 2020.
@inproceedings{khairy2020accel,
title = {{Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling}},
author = {Mahmoud Khairy, Zhesheng Shen, Tor M. Aamodt and Timothy G. Rogers},
booktitle = {ISCA 2020},
year = {2020},
doi = {10.1109/isca45697.2020.00047},
url = {https://doi.org/10.1109/isca45697.2020.00047}
}References
- T. M. Aamodt, W. W. Fung, I. Singh, A. El-Shafiey, J. Kwa, T. Hetherington, A. Gubran, A. Boktor, T. Rogers, and A. Bakhoda, “GPGPU-Sim 3. x manual,” http://gpgpu-sim.org/manual/index.php/Main Page, 2016. ↗
- A. Adileh, C. González-Alvarez, J. M. D. H. Ruiz, and L. Eeckhout, “Racing to Hardware-Validated Simulation,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2019, pp. 58–67. find
- A. M. Aji, M. Daga, and W.-c. Feng, “Bounding the Effect of Partition Camping in GPU Kernels,” in Proceedings of the 8th ACM International Conference on Computing Frontiers (CF), 2011, p. 27. find
- N. Ardalani, C. Lestourgeon, K. Sankaralingam, and X. Zhu, “Cross-Architecture Performance Prediction (XAPP) Using CPU Code to Predict GPU Performance,” in Proceedings of the 48th International Symposium on Microarchitecture (MICRO), 2015, pp. 725–737. find
- A. Bakhoda, G. L. Yuan, W. W. Fung, H. Wong, and T. M. Aamodt, “Analyzing CUDA Workloads Using a Detailed GPU Simulator,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2009, pp. 163–174.
- B. Beckmann and A. Gutierrez, “The AMD gem5 APU Simulator: Modeling Heterogeneous Systems in gem5,” in Tutorial at the International Symposium on Microarchitecture (MICRO), 2015. find
- T. E. Carlson, W. Heirman, and L. Eeckhout, “Sniper: Exploring the Level of Abstraction for Scalable and Accurate Parallel Multi-Core Simulation,” in Proceedings of International Conference for High Performance Computing, Networking, Storage and Analysis (SC), 2011, pp. 1–12. find
- N. Chatterjee, M. O’Connor, G. H. Loh, N. Jayasena, and R. Balasub-ramonian, “Managing DRAM Latency Divergence in Irregular GPGPU Applications,” in Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC), 2014, pp. 128–139. find
- S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, S.-H. Lee, and K. Skadron, “Rodinia: A Benchmark Suite for Heterogeneous Computing,” in Proceedings of IEEE international symposium on workload characterization (IISWC), 2009, pp. 44–54. find
- J. Choquette, O. Giroux, and D. Foley, “Volta: Performance and Programmability,” IEEE Micro 2018, vol. 38, no. 2, pp. 42–52. find
- H. Dai, C. Li, Z. Lin, and H. Zhou, “The Demand for a Sound Baseline in GPU Memory Architecture Research,” in Proceedings of the Workshop on Duplicating, Deconstructing and Debunking (WDDD), 2017. find
- V. M. Del Barrio, C. González, J. Roca, A. Fernández, and E. Espasa, “ATTILA: A Cycle-Level Execution-Driven Simulator for Modern GPU Architectures,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2006, pp. 231–241. find
- R. Desikan, D. Burger, and S. W. Keckler, “Measuring Experimental Error in Microprocessor Simulation,” in Proceedings of the 28th annual International Symposium on Computer Architecture (ISCA), 2001, pp. 266–277. find
- P. Gera, H. Kim, H. Kim, S. Hong, V. George, and C.-K. C. Luk, “Performance Characterisation and Simulation of Intel’s Integrated GPU Architecture,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2018, pp. 139–148. find
- X. Gong, R. Ubal, and D. Kaeli, “Multi2Sim Kepler: A Detailed Architectural GPU Simulator,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2017, pp. 269– 278. find
- S. Grauer-Gray, L. Xu, R. Searles, S. Ayalasomayajula, and J. Cavazos, “Auto-tuning a High-Level Language Targeted to GPU Codes,” in Innovative Parallel Computing (InPar), 2012, pp. 1–10. find
- A. A. Gubran and T. M. Aamodt, “Emerald: Graphics Modeling for SoC Systems,” in ACM/IEEE 46th Annual International Symposium on Computer Architecture (ISCA), 2019, pp. 169–182. find
- A. Gutierrez, B. M. Beckmann, A. Dutu, J. Gross, M. LeBeane, J. Kalamatianos, O. Kayiran, M. Poremba, B. Potter, S. Puthoor, M. Sinclair, M. Wyse, J. Yin, X. Zhang, A. Jain, and T. G. Rogers, “Lost in Abstraction: Pitfalls of Analyzing GPUs at the Intermediate Language Level,” in IEEE International… find
- A. Gutierrez, J. Pusdesris, R. G. Dreslinski, T. Mudge, C. Sudanthi, C. D. Emmons, M. Hayenga, and N. Paver, “Sources of Error in Full-System Simulation,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2014, pp. 13–22. find
- S. Hong and H. Kim, “An Integrated GPU Power and Performance Model,” in Proceedings of the 37th annual international symposium on computer architecture (ISCA), 2010, pp. 280–289. find
- J.-C. Huang, J. H. Lee, H. Kim, and H.-H. S. Lee, “GPUMech: GPU Performance Modeling Technique based on Interval Analysis,” in Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2014, pp. 268–279. find
- A. Jain, M. Khairy, and T. G. Rogers, “A Quantitative Evaluation of Contemporary GPU Simulation Methodology,” Proceedings of the ACM on Measurement and Analysis of Computing Systems (SIGMETRICS), vol. 2, no. 2, p. 35, 2018. find
- JEDEC Standard, “GDDR5X,” JESD232A, 2016. find
- ——, “High bandwidth memory (HBM) DRAM,” JESD235, 2020. find
- W. Jia, K. A. Shaw, and M. Martonosi, “MRPB: Memory Request Prioritization for Massively Parallel Processors,” in IEEE 20th International Symposium on High Performance Computer Architecture (HPCA), 2014, pp. 272–283. find
- Z. Jia, M. Maggioni, B. Staiger, and D. P. Scarpazza, “Dissecting the NVIDIA Volta GPU Architecture via Microbenchmarking,” arXiv preprint arXiv:1804.06826, 2018.
- N. P. Jouppi, “Cache Write Policies and Performance,” in 20th Annual International Symposium on Computer Architecture (ISCA), 1993, pp. 191–201. find
- H. Kim, J. Lee, N. B. Lakshminarayana, J. Sim, J. Lim, and T. Pho, “MacSim: A CPU-GPU Heterogeneous Simulation Framework User Guide,” Technical Report, Georgia Institute of Technology, 2012. find
- G. Koo, Y. Oh, W. W. Ro, and M. Annavaram, “Access Pattern-Aware Cache Management for Improving Data Utilization in GPU,” in Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA), 2017, pp. 307–319. find
- C. J. Lee, V. Narasiman, E. Ebrahimi, O. Mutlu, and Y. N. Patt, “DRAM-Aware Last-Level Cache Writeback: Reducing Write-Caused Interference in Memory Systems,” Technical Report, The University of Texas at Austin, TR-HPS-2010-002, 2010. find
- J. Lew, D. A. Shah, S. Pati, S. Cattell, M. Zhang, A. Sandhupatla, C. Ng, N. Goli, M. D. Sinclair, T. G. Rogers, and T. M. Aamodt, “Analyzing Machine Learning Workloads Using a Detailed GPU Simulator,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2019, pp… find
- J. S. Liptay, “Structural Aspects of the System/360 Model 85, II: The Cache,” IBM Systems Journal, vol. 7, no. 1, pp. 15–21, 1968. find
- Y. Liu, X. Zhao, M. Jahre, Z. Wang, X. Wang, Y. Luo, and L. Eeckhout, “Get Out of the Valley: Power-Efficient Address Mapping for GPUs,” in ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), 2018, pp. 166–179. find
- X. Mei and X. Chu, “Dissecting GPU Memory Hierarchy through Microbenchmarking,” IEEE Transactions on Parallel and Distributed Systems (TPDS), vol. 28, no. 1, pp. 72–86, 2017. find
- S. Narang and G. Diamos, “Baidu Deepbench,” https://svail.github.io/DeepBench, 2016. ↗
- T. Nowatzki, J. Menon, C.-H. Ho, and K. Sankaralingam, “Architectural Simulators Considered Harmful,” IEEE Micro, vol. 35, no. 6, pp. 4–12, 2015. find
- C. Nugteren, G.-J. van den Braak, H. Corporaal, and H. Bal, “A Detailed GPU Cache Model Based on Reuse Distance Theory,” in IEEE 20th International Symposium on High Performance Computer Architecture (HPCA), 2014, pp. 37–48. find
- NVIDIA, “Kepler Architecture,” https://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf, 2012. ↗
- ——, “GeForce GTX Titan,” https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-titan/specifications, 2013. ↗
- ——, “CUDA C/C++ SDK Code Samples,” http://developer.nvidia.com/cuda-cc-sdk-code-samples, 2015. ↗
- ——, “NVIDIA TITAN X,” https://www.nvidia.com/en-us/geforce/products/10series/titan-x-pascal/, 2016. ↗
- ——, “CUDA Binary Utilities,” https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html, 2017. ↗
- ——, “CuDNN Devloper Guide,” https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index.html, 2017. ↗
- ——, “Nvidia Profiler 8.0,” http://docs.nvidia.com/cuda/profiler-users-guide/index.html, 2017. ↗
- ——, “Volta Cache,” http://on-demand.gputechconf.com/gtc/2017/presentation/s7798-luke-durant-inside-volta.pdf, 2017. ↗
- ——, “Volta V100 White paper,” http://images.nvidia.com/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf, 2017. ↗
- ——, “CUTLASS: CUDA template library for dense linear algebra at all levels and scales,” https://github.com/NVIDIA/cutlass, 2018. ↗
- ——, “GeForce RTX 2060,” https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2060/, 2019. ↗
- ——, “NVIDIA Nsight CLI,” https://docs.nvidia.com/nsight-compute/NsightComputeCli/index.html, 2019. ↗
- ——, “Programming Guide,” https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html, 2019. ↗
- M. O’Connor, “Highlights of the High-Bandwidth Memory (HBM) Standard,” in Memory Forum Workshop, Co-located with the 41st International Symposium on Computer Architecture (ISCA), 2014. find
- K. Pagiamtzis and A. Sheikholeslami, “A Low-Power Content-Addressable Memory (CAM) Using Pipelined Hierarchical Search Scheme,” IEEE Journal of Solid-State Circuits, vol. 39, no. 9, pp. 1512– 1519, 2004. find
- Paulius Micikevicius, “Kepler Architecture,” http://on-demand.gputechconf.com/gtc/2013/presentations/ S3466-Programming-Guidelines-GPU-Architecture.pdf, 2013. ↗
- J. Power, J. Hestness, M. S. Orr, M. D. Hill, and D. A. Wood, “gem5-gpu: A heterogeneous CPU-GPU Simulator,” IEEE Computer Architecture Letters (CAL), vol. 14, no. 1, pp. 34–36, 2014. find
- M. A. Raihan, N. Goli, and T. M. Aamodt, “Modeling Deep Learning Accelerator Enabled GPUs,” in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2019, pp. 79– 92. find
- B. R. Rau, “Pseudo-Randomly Interleaved Memory,” in Proceedings of the 18th Annual International Symposium on Computer Architecture (ISCA), 1991, pp. 74–83. find
- M. Rhu, M. Sullivan, J. Leng, and M. Erez, “A Locality-Aware Memory Hierarchy for Energy-Efcient GPU Architectures,” in Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2013, pp. 86–98. find
- S. Rixner, W. J. Dally, U. J. Kapasi, P. Mattson, and J. D. Owens, “Memory Access Scheduling,” in Proceedings of the 27th Annual International Symposium on Computer Architecture (ISCA), 2000, pp. 128–138. find
- T. G. Rogers, M. O’Connor, and T. M. Aamodt, “Cache-Conscious Wavefront Scheduling,” in Proceedings of the 45th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2012, pp. 72– 83. find
- R. H. Saavedra-Barrera, “CPU Performance Evaluation and Execution Time Prediction Using Narrow Spectrum Benchmarking,” Technical Report No. UCB/CSD-92-684, University of California, Berkeley, 1993. find
- A. Sethia, D. A. Jamshidi, and S. Mahlke, “Mascar: Speeding up GPU Warps by Reducing Memory Pitstops,” in IEEE 21st International Symposium on High Performance Computer Architecture (HPCA), 2015, pp. 174–185. find
- A. Seznec, “Decoupled Sectored Caches: conciliating low tag implementation cost and low miss ratio,” in Proceedings of the 21st Annual International Symposium on Computer Architecture (ISCA), 1994, pp. 384–393. find
- M. D. Sinclair, J. Alsop, and S. V. Adve, “Chasing Away RAts: Semantics and Evaluation for Relaxed Atomics on Heterogeneous Systems,” in ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA), 2017, pp. 161–174. find
- M. Stephenson, S. K. S. Hari, Y. Lee, E. Ebrahimi, D. R. Johnson, D. Nellans, M. O’Connor, and S. W. Keckler, “Flexible Software Profiling of GPU Architectures,” in ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA), 2015, pp. 185–197. find
- J. A. Stratton, C. Rodrigues, I.-J. Sung, N. Obeid, L.-W. Chang, N. Anssari, G. D. Liu, and W. Hwu, “Parboil: A Revised Benchmark Suite for Scientific and Commercial Throughput Computing,” Center for Reliable and High-Performance Computing, vol. 127, 2012. find
- J. Stuecheli, D. Kaseridis, D. Daly, H. C. Hunter, and L. K. John, “The Virtual Write Queue: Coordinating DRAM and Last-Level Cache Policies,” in Proceedings of the 47th Annual International Symposium on Computer Architecture (ISCA), 2010, pp. 72–82. find
- Y. Sun, T. Baruah, S. A. Mojumder, S. Dong, X. Gong, S. Treadway, Y. Bao, S. Hance, C. McCardwell, V. Zhao, H. Barclay, A. K. Ziabari, Z. Chen, R. Ubal, J. L. Abelln, J. Kim, A. Joshi, and D. Kaeli, “MG-PUSim: Enabling Multi-GPU Performance Modeling and Optimization,” in Proceedings of the 46th Inte… find
- J. Tuck, L. Ceze, and J. Torrellas, “Scalable Cache Miss Handling for High Memory-Level Parallelism,” in Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2006, pp. 409–422. find
- R. Ubal, B. Jang, P. Mistry, D. Schaa, and D. Kaeli, “Multi2Sim: A Simulation Framework for CPU-GPU Computing,” in Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques (PACT), 2012, pp. 335–344. find
- O. Villa, M. Stephenson, D. Nellans, and S. W. Keckler, “NVBit: A Dynamic Binary Instrumentation Framework for NVIDIA GPUs,” in Proceedings of the 52Nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2019, pp. 372–383. find
- X. Wang, K. Huang, A. Knoll, and X. Qian, “A Hybrid Framework for Fast and Accurate GPU Performance Estimation through Source-Level Analysis and Trace-Based Simulation,” in IEEE International Symposium on High Performance Computer Architecture (HPCA), 2019, pp. 506–518. find
- D. Wong, N. S. Kim, and M. Annavaram, “Approximating Warps with Intra-warp Operand Value Similarity,” in 2016 IEEE International Symposium on High Performance Computer Architecture (HPCA), 2016, pp. 176–187. find
- H. Wong, M.-M. Papadopoulou, M. Sadooghi-Alvandi, and A. Moshovos, “Demystifying GPU Microarchitecture through Microbenchmarking,” in IEEE International Symposium on Performance Analysis of Systems & Software (ISPASS), 2010, pp. 235–246. find
- G. Wu, J. L. Greathouse, A. Lyashevsky, N. Jayasena, and D. Chiou, “GPGPU Performance and Power Estimation Using Machine Learning,” in IEEE 21st International Symposium on High Performance Computer Architecture (HPCA), 2015, pp. 564–576. find
- Y. Zhang and J. D. Owens, “A Quantitative Performance Analysis Model for GPU Architectures,” in IEEE 17th International Symposium on High Performance Computer Architecture (HPCA), 2011, pp. 382–393. find
- H. Zhu, M. Akrout, B. Zheng, A. Pelegris, A. Jayarajan, A. Phanishayee, B. Schroeder, and G. Pekhimenko, “Benchmarking and Analyzing Deep Neural Network Training,” in IEEE International Symposium on Workload Characterization (IISWC), 2018, pp. 88–100. find
Updated
This page in Markdown → https://md.research.elamur.ai/free/en/papers/khairy-2020-accel-sim-extensible-simulation-framework/