Is acc_copyin() asynchronous?

Do data movement routines, like acc_copyin(), block until the memcopy is complete? Or do they perform asyncronously, like #pragma data copyin()?

Hi Ron,

They block. If you want to do an asynchronous transfer, use “create” followed by an “update async” directive, or use the unstructured data lifetime directive. For example:

#pragma acc data create(a) {
#pragma acc update device(a) async(1)
...
}

or

#pragma acc enter data copyin(a) async(1)
...
#pragma acc exit data delete(a)

Hope this helps,
Mat

Thanks for clarifying, Mat. This helps a lot.