don't report bogus timings
This commit is contained in:
@ -224,7 +224,9 @@ void BaseEllipsoidT::output_times() {
|
|||||||
|
|
||||||
#ifdef USE_OPENCL
|
#ifdef USE_OPENCL
|
||||||
// Workaround for timing issue on Intel OpenCL
|
// Workaround for timing issue on Intel OpenCL
|
||||||
|
if (times[0] > 80e6) times[0]=0.0;
|
||||||
if (times[3] > 80e6) times[3]=0.0;
|
if (times[3] > 80e6) times[3]=0.0;
|
||||||
|
if (times[6] > 80e6) times[6]=0.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (device->replica_me()==0)
|
if (device->replica_me()==0)
|
||||||
@ -237,17 +239,18 @@ void BaseEllipsoidT::output_times() {
|
|||||||
fprintf(screen,"\n-------------------------------------");
|
fprintf(screen,"\n-------------------------------------");
|
||||||
fprintf(screen,"--------------------------------\n");
|
fprintf(screen,"--------------------------------\n");
|
||||||
|
|
||||||
if (device->procs_per_gpu()==1 && times[3]>0) {
|
if (device->procs_per_gpu()==1 && (times[3] > 0.0)) {
|
||||||
fprintf(screen,"Data Transfer: %.4f s.\n",times[0]/replica_size);
|
if (times[0] > 0.0)
|
||||||
|
fprintf(screen,"Data Transfer: %.4f s.\n",times[0]/replica_size);
|
||||||
fprintf(screen,"Neighbor copy: %.4f s.\n",times[1]/replica_size);
|
fprintf(screen,"Neighbor copy: %.4f s.\n",times[1]/replica_size);
|
||||||
if (nbor->gpu_nbor()>0)
|
if (nbor->gpu_nbor() > 0.0)
|
||||||
fprintf(screen,"Neighbor build: %.4f s.\n",times[2]/replica_size);
|
fprintf(screen,"Neighbor build: %.4f s.\n",times[2]/replica_size);
|
||||||
else
|
else
|
||||||
fprintf(screen,"Neighbor unpack: %.4f s.\n",times[2]/replica_size);
|
fprintf(screen,"Neighbor unpack: %.4f s.\n",times[2]/replica_size);
|
||||||
fprintf(screen,"Force calc: %.4f s.\n",times[3]/replica_size);
|
fprintf(screen,"Force calc: %.4f s.\n",times[3]/replica_size);
|
||||||
fprintf(screen,"LJ calc: %.4f s.\n",times[4]/replica_size);
|
fprintf(screen,"LJ calc: %.4f s.\n",times[4]/replica_size);
|
||||||
}
|
}
|
||||||
if (times[6]>0)
|
if (times[6] > 0.0)
|
||||||
fprintf(screen,"Device Overhead: %.4f s.\n",times[6]/replica_size);
|
fprintf(screen,"Device Overhead: %.4f s.\n",times[6]/replica_size);
|
||||||
fprintf(screen,"Average split: %.4f.\n",avg_split);
|
fprintf(screen,"Average split: %.4f.\n",avg_split);
|
||||||
fprintf(screen,"Lanes / atom: %d.\n",_threads_per_atom);
|
fprintf(screen,"Lanes / atom: %d.\n",_threads_per_atom);
|
||||||
|
|||||||
@ -777,28 +777,30 @@ void DeviceT::output_times(UCL_Timer &time_pair, Answer<numtyp,acctyp> &ans,
|
|||||||
|
|
||||||
#ifdef USE_OPENCL
|
#ifdef USE_OPENCL
|
||||||
// Workaround for timing issue on Intel OpenCL
|
// Workaround for timing issue on Intel OpenCL
|
||||||
|
if (times[0] > 80e6) times[0]=0.0;
|
||||||
if (times[3] > 80e6) times[3]=0.0;
|
if (times[3] > 80e6) times[3]=0.0;
|
||||||
if (times[5] > 80e6) times[5]=0.0;
|
if (times[5] > 80e6) times[5]=0.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (replica_me()==0)
|
if (replica_me()==0)
|
||||||
if (screen && times[6]>0.0) {
|
if (screen && (times[6] > 0.0)) {
|
||||||
fprintf(screen,"\n\n-------------------------------------");
|
fprintf(screen,"\n\n-------------------------------------");
|
||||||
fprintf(screen,"--------------------------------\n");
|
fprintf(screen,"--------------------------------\n");
|
||||||
fprintf(screen," Device Time Info (average): ");
|
fprintf(screen," Device Time Info (average): ");
|
||||||
fprintf(screen,"\n-------------------------------------");
|
fprintf(screen,"\n-------------------------------------");
|
||||||
fprintf(screen,"--------------------------------\n");
|
fprintf(screen,"--------------------------------\n");
|
||||||
|
|
||||||
if (time_device() && times[3]>0) {
|
if (time_device() && (times[3] > 0.0)) {
|
||||||
fprintf(screen,"Data Transfer: %.4f s.\n",times[0]/_replica_size);
|
if (times[0] > 0.0)
|
||||||
|
fprintf(screen,"Data Transfer: %.4f s.\n",times[0]/_replica_size);
|
||||||
fprintf(screen,"Neighbor copy: %.4f s.\n",times[1]/_replica_size);
|
fprintf(screen,"Neighbor copy: %.4f s.\n",times[1]/_replica_size);
|
||||||
if (nbor.gpu_nbor()>0)
|
if (nbor.gpu_nbor() > 0.0)
|
||||||
fprintf(screen,"Neighbor build: %.4f s.\n",times[2]/_replica_size);
|
fprintf(screen,"Neighbor build: %.4f s.\n",times[2]/_replica_size);
|
||||||
else
|
else
|
||||||
fprintf(screen,"Neighbor unpack: %.4f s.\n",times[2]/_replica_size);
|
fprintf(screen,"Neighbor unpack: %.4f s.\n",times[2]/_replica_size);
|
||||||
fprintf(screen,"Force calc: %.4f s.\n",times[3]/_replica_size);
|
fprintf(screen,"Force calc: %.4f s.\n",times[3]/_replica_size);
|
||||||
}
|
}
|
||||||
if (times[5]>0)
|
if (times[5] > 0.0)
|
||||||
fprintf(screen,"Device Overhead: %.4f s.\n",times[5]/_replica_size);
|
fprintf(screen,"Device Overhead: %.4f s.\n",times[5]/_replica_size);
|
||||||
fprintf(screen,"Average split: %.4f.\n",avg_split);
|
fprintf(screen,"Average split: %.4f.\n",avg_split);
|
||||||
fprintf(screen,"Lanes / atom: %d.\n",threads_per_atom);
|
fprintf(screen,"Lanes / atom: %d.\n",threads_per_atom);
|
||||||
|
|||||||
Reference in New Issue
Block a user