>so by network attach storage does it mean that it storing of data to profile.mon file
Yes, if you are saving that file to a network-attached storage or a slow hard disk, it will increase the gap between kernel executions. This issue is mentioned in Intel's documents.
And yes, extracting start and end time of each kernel from its associated event and summing the run time of each will give you total run time of kernel executions, but that will not include the gap between the kernel executions. You can also use gettimeofday or clock_gettime functions on Linux to measure total run time including the gap from the host. Something like this:
start=gettimeofday();
enqueue_kernel_1;
clFinish();
enqueue_kernel_2;
clFinish();
end=gettimeofday();
total_time_with_gap=end-start;
You can subtract the run time of each kernel execution measured with clGetEventProfilingInfo from the above value to get the length of the gap between kernel executions.