Hey again everyone,
I am attempting to do an asynchronous data transfer. I want to start data transfer, simultanesouly run stuff on the host, once host computation and data transfer is over run another portion of the code on the MIC. It look something like this
integer :: start(1000) !dir$ offload_transfer target(mic:0),& !dir$& in(start:alloc_if(.true.) free_if(.false.)) !dir$& signal(signal1) !---do some miscellaneous code on host !--- now that host computation is over, start MIC computation if data transfer if over !dir$ offload_wait target(mic:0) nocopy(start) wait(signal1) !--- perform some code !dir$ end offload
Unfortunately when I perform the above in my code, I keep getting: "found nocopy when executing one of : target if wait status mandatory optional, <end of statement>
An offload begin directive blocks starts in one F95 block and ends in another ( this is in reference to the end offload line)
Could someone please help me with my format here? I have searched around online, but haven't found the appropriate end offload_wait line.