You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deepwave currently stores wavefields from forward modeling in memory for use
during backpropagation. This is fine for small 2D models, but is likely to
require more memory than is available for realistic 3D datasets. Adding
storage options that are appropriate for such situations would allow Deepwave
to be applied to more datasets and on low memory systems.
One option that should be provided is to store the wavefields on disk. This
might require that the compiled propagator is called for several time steps,
the saved wavefields from those time steps are saved to disk, and then the
compiled propagator is called again for the next few time steps, etc.
Another option (potentially to be combined with storing to disk) is to
compress the wavefield. There are several possible ways to do this, such as
simply converting to 16 bit floats, but others should also be considered such
as compressing the wavefields using a video encoder.
For GPU propagators, it is preferable that the compression is done on the GPU
as transferring the uncompressed data from GPU to CPU memory could be slow.
It is also possible to avoid this issue by recomputing the forward wavefields during backpropagation. This is an option to consider, but it might add considerable complexity to the code.
The text was updated successfully, but these errors were encountered:
Deepwave currently stores wavefields from forward modeling in memory for use
during backpropagation. This is fine for small 2D models, but is likely to
require more memory than is available for realistic 3D datasets. Adding
storage options that are appropriate for such situations would allow Deepwave
to be applied to more datasets and on low memory systems.
One option that should be provided is to store the wavefields on disk. This
might require that the compiled propagator is called for several time steps,
the saved wavefields from those time steps are saved to disk, and then the
compiled propagator is called again for the next few time steps, etc.
Another option (potentially to be combined with storing to disk) is to
compress the wavefield. There are several possible ways to do this, such as
simply converting to 16 bit floats, but others should also be considered such
as compressing the wavefields using a video encoder.
For GPU propagators, it is preferable that the compression is done on the GPU
as transferring the uncompressed data from GPU to CPU memory could be slow.
It is also possible to avoid this issue by recomputing the forward wavefields during backpropagation. This is an option to consider, but it might add considerable complexity to the code.
The text was updated successfully, but these errors were encountered: