我使用
hipMemcpyAsync
将数据复制到 GPU 内存,然后使用 hipDeviceSynchronize
等待设备完成数据传输。 hipDeviceSynchronize
函数的描述here指出“主机线程被阻塞,直到与设备关联的流关联的所有命令为止”。观察 CPU 利用率,我相信主机线程开始在该函数内忙等待,直到设备完成其任务。是否有任何其他我可以使用的函数或我可以设置的变量来将此行为修改为基于中断的阻塞,其中主机线程实际上被操作系统阻塞,然后被设备的中断唤醒?
我自己想出来了。所需要做的就是添加以下内容。
hipSetDeviceFlags(hipDeviceScheduleBlockingSync)