Software Archive
Read-only legacy content
17061 Discussions

Offload more than 2MB

Severin_G_
Beginner
617 Views

hi,

I'm new to the MIC and allready run in a problem. I'm using the offlaod execution model to offload 3 float array to the Mic. Everything works till one of the array exceeds 2MB. If this happens the programm looks like it's not runing. I tried to find out if there is a problem with the offloading but the OFFLOAD_REPORT doesn't show up anything in the broken case.

 

Here is my code example:

//First offload section

#pragma offload target(mic) in(U_0_1_out:length((x_max*y_max)) alloc_if(1) free_if(0)) in(U_0_0:length((x_max*y_max)) alloc_if(1) free_if(0)) in(U_0_1:length((x_max*y_max)) alloc_if(1) free_if(0))

 

If you need more informations please ask. Thanks for your help.

 

0 Kudos
3 Replies
Sumedh_N_Intel
Employee
617 Views

Hi, 

I am unsure of why you are having this issue. It would be very helpful if you could share a simple reproducers for the issue.

Thanks, 

Sumedh

0 Kudos
TimP
Honored Contributor III
617 Views

I'm seeing a somewhat similar limitation, except that I have no difficulty with 3 8MB arrays, using omp target map (eliminating all omp target data and omp target update usage), but I get the failure message about data overlap when increasing those arrays to 32MB.  I have a B0 card (4GB RAM) which ought to be sufficient, as the same benchmark ran on the predecessor 1.5GB card.  I no longer have access to a current Intel(r) Xeon Phi(tm) card.

My larger data transfers "appear to work" when I understate the length parameters (assuming they are measured by data type, not in bytes).

I haven't found documentation on whether there is a buffer size environment variable requirement for MPSS 3.1.1 along with omp target as there was at one time with the legacy offload.  Some of the parameters associated with offload buffers were made semi-automatic in the past.

0 Kudos
Severin_G_
Beginner
617 Views

Thanks for your answers. During preparation of a simplified reproducing program I saw one of the offloaded arrays wasn't allocated. If I allocate this array the offload works so far.

 

Thanks

0 Kudos
Reply