樓主你好:
這是因為你往往是這樣的:
host -> device copy (記為時間1)
kernel<<<>>>() (記為時間2)
device -> host copy (記為時間3)
但實際上,您的時間3將包含kernel的執行時間和後續的傳輸時間的。
因為您的kernel將不等執行完畢就返回了。
您可以這樣:
host -> device copy (記為時間1)
kernel<<<>>>() 再 cudaDeviceSynchronize() (記為總計時間2)
device -> host copy (記為時間3)
這樣是比較客觀的.
您覺得呢? |