我正在做一个关于 GPU 上的一些 CUDA 加速的项目,并完成了一些软件级别的优化我的计算,而且我发现 GPU 架构的一些变化可能有助于进一步优化项目。
现在我的问题是,是否有一种有效的方法或现有的模拟器可以让我更改 GPU 架构中的某些功能或部分,然后我可以在该定制架构上对 CUDA PTX 代码进行基准测试以获得性能结果(最好是周期准确) ? CPU的架构模拟器有几种,所以我想知道其中一些是否支持GPU?或者我可能必须自己编写一个 GPU 模拟器^_^?
我正在做一个关于 GPU 上的一些 CUDA 加速的项目,并完成了一些软件级别的优化我的计算,而且我发现 GPU 架构的一些变化可能有助于进一步优化项目。
现在我的问题是,是否有一种有效的方法或现有的模拟器可以让我更改 GPU 架构中的某些功能或部分,然后我可以在该定制架构上对 CUDA PTX 代码进行基准测试以获得性能结果(最好是周期准确) ? CPU的架构模拟器有几种,所以我想知道其中一些是否支持GPU?或者我可能必须自己编写一个 GPU 模拟器^_^?
您正在寻找GPGPU-sim。该模拟器可以准确地模拟 NVIDIA GPU 并执行 OpenCL 和 CUDA 工作负载,而无需修改代码。我想也可以选择对 PTX 工作负载进行建模。从手册:
GPGPU-Sim 3.x 运行由 CPU 部分和 GPU 部分组成的程序二进制文件。然而,GPGPU-Sim 3.x 中的微架构(时序)模型报告了 GPU 繁忙的周期——它既不建模 CPU 时序也不建模 PCI Express 时序(即 CPU 和 GPU 之间的内存传输时间)。
GPGPU-sim 具有广泛的可配置性,可让您对不同的微架构进行建模。例如,您可以调整 SM 的数量、warp 调度程序、SIMD 组、每个 SM 的线程、共享内存大小、寄存器文件大小以及手册中解释的许多其他参数。在模拟结束时,模拟器转储执行持续时间(以 GPU 时钟周期为单位)和许多其他性能计数器。
更多的信息:
GPU Ocelot是一款 PTX 分析器。在以前的版本中,您可以模拟工作负载。但是,最近的版本侧重于 PTX 代码的编译器优化。
MacSim是另一个复杂而强大的工具,模拟 CPU 和 GPU 的异构系统。