高性能计算中TAU性能系统的最新进展
1. 回调方法
回调方法依赖于设备层的一种机制,该机制会为注册的操作(如内核执行的开始和结束)在主机上触发回调。注册的回调由GPU操作触发,从而实现更紧密耦合的测量。如图10.3所示,“回调”方法表明,由于可以通过回调将控制权直接交给CPU进程,因此能够更即时地测量内核性能。此外,该方法更加灵活,因为可以提供更广泛的回调类型,并且性能测量可以针对特定的回调类型。回调注册过程避免了在应用程序中内核启动的位置修改代码。不过,回调方法依赖于设备制造商在设备层甚至GPU硬件中提供支持。
常见的性能工具如PAPI、VampirTrace和TAU性能系统,均支持使用CUDA和OpenCL进行GPU性能测量。这些工具支持可扩展并行应用程序的性能计数器测量、分析和跟踪,是基于探针的测量系统的代表。
2. TAU性能系统实现
TAU具有用于源代码插桩、编译器插桩和库包装的工具,可轻松观察CPU事件。具体而言,它允许对CUDA运行时/驱动程序API进行库包装,并在执行前预加载包装后的库。之后,TAU会拦截对运行时或驱动程序例程的每次调用,在调用实际的CUDA例程前后进行测量。
TAU库插入通过Linux的LD_PRELOAD机制动态实现,可用于未插桩的可执行文件。VampirTrace等其他性能工具也采用了类似的LD_PRELOAD机制与CUDA库结合使用。
由于需要校正CPU和GPU之间的时间延迟,就像在多个节点之间跟踪事件一样,因此需要进行时钟同步。这可以通过在同步点同时(或尽可能接近)测量CPU和GPU上的时间来实现。GPU时间可以在刚发生的同步事件中获取,通过测量这两个时间之间的差异,就能得
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



