[petsc-dev] PETSc issue I cannot post combine WaitForCUDA(); inside PetscLogGpuTimeEnd();
Karl Rupp
rupp at iue.tuwien.ac.at
Fri Aug 28 05:35:49 CDT 2020
Hi,
> Since we cannot post issues (reported here
> https://forum.gitlab.com/t/creating-new-issue-gives-cannot-create-issue-getting-whoops-something-went-wrong-on-our-end/41966?u=bsmith)
> here is my issue so I don't forget it.
>
> I think
>
> err = WaitForCUDA();CHKERRCUDA(err);
> ierr = PetscLogGpuTimeEnd();CHKERRQ(ierr);
>
> should be changed to include WaitForCUDA() actually WaitForDevice()
> inside the PetscLogGpuTimeEnd().
>
> Currently sometimes the WaitForCUDA() is missing in a few places
> resulting in bad timing.
>
> Also some _SeqCUDA() don't have the PetscLogGpuTimeEnd() and need to be
> fixed.
>
> The current model is a maintenance nightmare.
>
> Does anyone see a problem with making this change?
I'm fine with this change, as the maintenance benefits outweigh the
performance cost for typical use cases.
I propose to also add the WaitForDevice(); at PetscLogGpuTimeBegin().
This will ensure that no previous GPU kernel executions spill over into
the timed section.
Best regards,
Karli
More information about the petsc-dev
mailing list