用户
 找回密码
 立即注册
k20522114 该用户已被删除
发表于 2013-11-11 17:02:39
77202
你好:

我的程式分別跑 cudaMemcpyHostToDevice 和 kernel 和 cudaMemcpyDeviceToHost 時間分別為0.004秒,0.007秒,3.202秒
我想問的是為什麼cudaMemcpyDeviceToHost時間會很慢?比cudaMemcpyHostToDevice慢了很多。
使用道具 举报 回复
发表于 2013-11-11 17:32:59
樓主你好:

這是因為你往往是這樣的:
host -> device copy (記為時間1)
kernel<<<>>>() (記為時間2)
device -> host copy (記為時間3)

但實際上,您的時間3將包含kernel的執行時間和後續的傳輸時間的。
因為您的kernel將不等執行完畢就返回了。

您可以這樣:
host -> device copy (記為時間1)
kernel<<<>>>() 再 cudaDeviceSynchronize() (記為總計時間2)
device -> host copy (記為時間3)

這樣是比較客觀的.

您覺得呢?
使用道具 举报 回复 支持 反对
发表于 2013-11-12 11:29:51
恩 我在去試試看
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册