我在分成多个 GPU 的块 (N*N/p) 上运行 CUFFT,我对计算性能有疑问。首先,关于我是如何做到的:
- 向每个 GPU 发送 N*N/p 个块
- 对 p 个 GPU 中的每一行进行批量 1-D FFT
- 将 N*N/p 个块返回主机 - 对整个数据集执行转置
- 同上步骤 1
- 同上步骤 2
Gflops = ( 1e-9 * 5 * N * N *lg(N*N) ) / execution time
执行时间计算如下:
execution time = Sum(memcpyHtoD + kernel + memcpyDtoH times for row and col FFT for each GPU)
这是在多个 GPU 上评估 CUFFT 性能的正确方法吗?有没有其他方法可以代表 FFT 的性能?
谢谢。