Flexible software profiling of GPU architectures

Flexible software profiling of GPU architectures
复制标题

GPU 架构的灵活软件分析

DOI:
--
复制
发表时间:
2015
期刊:
International Symposium on Computer Architecture
影响因子:
--
通讯作者:
S. Keckler
S. Keckler
中科院分区:
--
文献类型:
--
作者:
M. Stephenson;S. Hari;Yunsup Lee;Eiman Ebrahimi;Daniel R. Johnson;D. Nellans;Mike O'Connor;S. Keckler

文献摘要

被引文献

相似文献

为了帮助应用程序表征和架构设计空间探索,研究人员和工程师已经开发了广泛的CPU工具,包括模拟器,分析器和二进制仪器工具。随着GPU计算的出现,GPU制造商已经开发了利用硬件分析和调试挂钩的类似工具。迄今为止,这些工具在很大程度上受到工具开发人员提供的固定选项菜单的限制,并且不向用户提供观察或对菜单中没有的事件采取行动的灵活性。本文介绍了SASSI(NVIDIA汇编代码“SASS”Instrumentor),一个低层次的汇编语言的GPU插装工具。与CPU二进制插装工具类似,SASSI允许用户指定插入用户提供的插装代码的指令。这些设施允许将计数器和代码策略性地放置到GPU汇编代码中,以硬件速度收集用户指导的细粒度统计数据。SASSI仪器本身是并行的,利用了底层硬件的并发性。除了SASSI的细节,本文还提供了四个案例研究,展示了SASSI如何用于描述应用程序的特征,并沿着指令控制流、内存系统、值相似性和弹性等维度探索架构设计空间。
To aid application characterization and architecture design space exploration, researchers and engineers have developed a wide range of tools for CPUs, including simulators, profilers, and binary instrumentation tools. With the advent of GPU computing, GPU manufacturers have developed similar tools leveraging hardware profiling and debugging hooks. To date, these tools are largely limited by the fixed menu of options provided by the tool developer and do not offer the user the flexibility to observe or act on events not in the menu. This paper presents SASSI (NVIDIA assembly code “SASS” Instrumentor), a low-level assembly-language instrumentation tool for GPUs. Like CPU binary instrumentation tools, SASSI allows a user to specify instructions at which to inject user-provided instrumentation code. These facilities allow strategic placement of counters and code into GPU assembly code to collect user-directed, fine-grained statistics at hardware speeds. SASSI instrumentation is inherently parallel, leveraging the concurrency of the underlying hardware. In addition to the details of SASSI, this paper provides four case studies that show how SASSI can be used to characterize applications and explore the architecture design space along the dimensions of instruction control flow, memory systems, value similarity, and resilience.