0

嗨,我使用的是 CAPS OpenACC 编译器,但是当我尝试获得一些初步的配置文件结果时发生了一些意外。

起初,我通过声明 HMPPRT_LOG_LEVEL="info" 运行代码,这会生成一些带有时间戳的配置文件结果。

[     2.612337] ( 0) INFO : Upload   edgelengths[0:129600] (element_size=8, queue=none, location=gravity_openacc.c:50)
[     2.613485] ( 0) INFO : Call     __hmpp_acc_region__2ha750yb (queue=none, location=gravity_openacc.c:50)
[     2.614367] ( 0) INFO : Free     edgelengths[0:129600] (element_size=8, queue=none, location=gravity_openacc.c:50)

所以我猜内核执行时间计算为 2.614367-2.613485=0.000882 s。

但是当我声明 CUDA_PROFILE=1 时,会显示以下配置文件

method=[ __hmpp_acc_region__2ha750yb_parallel_region_1 ] gputime=[ 492.480 ] cputime=[ 13.000 ] occupancy=[ 0.250 ] 

所以我对这两个结果很困惑,这是真的吗???

有人得到一些解决方案吗?

谢谢!

4

1 回答 1

0

CUDA 分析器只显示执行 CUDA 内核所需的时间,而使用 HMPPRT_LOG_LEVEL="info" 获得的日志为您提供执行区域所需的总时间,这并不完全相同,因为您可能例如,有一些在主机上执行的代码。

于 2013-03-20T16:13:18.590 回答