- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
When I set OFFLOAD_REPORT = 1, offload program will output the offload time of MIC.
example:
[Host-TIME] 26.24
[MIC-TIME] 24.13
So My question is :What mean is " Host-Time - MIC-Time " ,It is the memory transfer & alloc time ?
Test code is :
#define FLOPS_ARRAY_SIZE (1024*1024) #define MAXFLOPS_ITERS 100000000 #define LOOP_COUNT 128 #define FLOPSPERCALC 2 float fa[FLOPS_ARRAY_SIZE] __attribute__((aligned(64))); float fb[FLOPS_ARRAY_SIZE] __attribute__((aligned(64))); int main(int argc, char *argv[]) { int i,j,k; int numthreads = 0; double tstart, tstop, ttime; double gflops = 0.0; float a = 1.1; #pragma omp parallel for num_threads(12) for(i=0; i<FLOPS_ARRAY_SIZE; i++) { fa = (float)i*0.1 + 0.001; fb = (float)i*0.1 + 0.002; } printf("Starting Compute on %d threads\r\n", numthreads); tstart = dtime(); float* faa = fa; float* fbb = fb; #pragma offload target (mic) \ inout(faa:length(FLOPS_ARRAY_SIZE)) \ in(fbb:length(FLOPS_ARRAY_SIZE)) { #pragma omp parallel for num_threads(10) for(i=0; i<200; i++) { int offset = i*LOOP_COUNT; for(j=0; j<MAXFLOPS_ITERS; j++) { for(k=0; k<LOOP_COUNT; k++) { faa[k+offset] = a * faa[k+offset] + fbb[k+offset]; } } } } }
When I changed the thread number of OMP , the "Host_Time - MIC_Time" was changed.
If it is the memory transfer & alloc time , Why it was changed, because the data size was not changed.
And I had another question , whether the "Host_Time - MIC_Time" is too long.
Thread_Number Total Host_Time MIC_Time Host_Time - MIC_Time
1 261.382 260.664547 241.37162 19.292927
10 26.316 26.243896 24.126691 2.117205
20 13.261 13.22475 12.066625 1.158125
30 10.35 10.321081 9.372723 0.948358
40 7.574 7.55332 6.812689 0.740631
50 5.91 5.893639 5.266601 0.627038
60 5.498 5.482917 4.890489 0.592428
70 4.546 4.533944 4.014249 0.519695
80 4.23 4.218489 3.718513 0.499976
90 4.235 4.223366 3.725147 0.498219
100 3.318 3.30913 2.878106 0.431024
120 2.972 2.963577 2.556071 0.407506
140 4.209 4.197017 3.680592 0.516425
160 3.742 3.731337 3.27012 0.461217
180 4.051 4.039941 3.552438 0.487503
200 3.055 3.046902 2.63788 0.409022
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Frank,
The following link provides you detailed information about the offload report and will answer all your questions. This way, you will understand what you can expect from the offload report. https://software.intel.com/en-us/node/522521
I'm sure it will help you to understand all the data that the offload report is generating for you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As explained in the documentation I provided in my previous answer:
Mic-Time is:
The total time measured for executing the offload on the target.
This excludes the data transfer time between the host and the target, and counts only the execution time on the target.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks gaston-hillar,
I have read it, but I think there must has some mistake at "CPU TIME" description in this article.
It said :
[Offload] [MIC 0] [CPU Time] 0.000000 (seconds)
[Offload] [MIC 0] [MIC Time] 0.000298 (seconds)
I do not think so, I think "CPU Time" includes "MIC Time", because I already tested it.
So do you or others can test it for confirm it.
Thanks.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page