- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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.
