首先先贴论文
Mahmoud Khairy, Zhesheng Shen, Tor M. Aamodt, Timothy G Rogers. Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling. In proceedings of the 47th IEEE/ACM International Symposium on Computer Architecture (ISCA), May 29 - June 3, 2020.
Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling | IEEE Conference Publication | IEEE Xplorehttps://ieeexplore.ieee.org/abstract/document/9138922A Performance Simulator for Many-Core Accelerator Research
What GPGPU-Sim Simulates
首先介绍了什么是GPGPUsim
1.Functional model for PTX/SASS
所以什么是PTX/SASS他们和CUDA有什么关系呢
于是我问了GPT4得到的回答是
PTX和SASS是CUDA编程中涉及到的两种汇编语言,它们分别对应于虚拟架构和真实架构,也就是GPU的抽象层次和硬件层次。PTX是一种中间表示,可以在不同的GPU上运行,而SASS是一种本地指令集,是GPU硬件上直接执行的二进制代码。CUDA编译器NVCC会将CUDA C/C++源代码分为主机端代码和设备端代码,主机端代码由标准的C编译器编译,设备端代码由NVCC进一步编译为PTX和SASS。PTX和SASS之间的关系可以用下图1
PTX和SASS的作用是为CUDA编程提供了灵活性和性能优化的可能性,开发者可以通过编写或修改PTX和SASS代码来实现更高效的GPU计算,或者利用一些特殊的指令集,如Tensor Core-MMA2。PTX和SASS的语法和指令集可以参考官方文档34,也有一些相关的教程和文章5。
搜索到了知乎上的回答
–PTX = Parallel Thread eXecution
–SASS = Native ISA for Nvidia GPUs
如果您的目标是使用GPGPU Sim进行应用程序性能调整,请先尝试使用SASS
如果您研究的机制对指令调度敏感:ptxas在将PTX转换为SASS之后重新调度指令,以增加计算内存重叠。它还将短分支转换为谓词指令。
–Not DirectX, Not shader model N, Not AMD’s ISA,
Not x86, Not Larrabee. Only PTX or SASS.
2.Timing model for the compute part of a GPU
–Not for CPU or PCIe
–Only model microarchitecture(这个在后面会介绍) timing relevant to GPU compute
3.Power model for the compute parts
–Other parts idle when GPU is running compute kernels(可以用GPUWattch Energy Model分析)
Runtime Flow