I don’t think the sync is needed, by the end of cudnnXXXForward(..., xdesc, ...); all the information in the xdesc that is needed has been converted into kernel parameters, etc and sent to some driver buffer.
At that point, xdesc can be safely deleted.