我有一个基于CUDA的代码,我想将OpenACC合并到代码的某些部分。但是,我尝试通过OpenACC代码并行化的功能有时受CUDA调用的约束,有时则不受。
我的问题是如何查询OpenACC库以查看设备是否繁忙。是否有任何API调用?
注意:我对CUDA并不完全熟悉,所以我只使用伪代码。
当设备忙于如下计算时,有时会在主机上调用目标函数seq_function
。但是,有时当设备不忙时会调用它。
cudaMemAlloc(...);
cudaLaunchAsync(...);
...
//This is the function I am trying to parallelize with OpenACC
seq_function(...);
...
cudaWait(...);
cudaDealloc(...);
所以,我想让目标函数变得灵活:
有没有办法查找设备是否忙碌?