ufo-kit / ufo-core

GLib-based framework for GPU-based data processing
GNU Lesser General Public License v3.0
24 stars 8 forks source link

clean-up after failed execution #167

Open xeiwoka opened 6 years ago

xeiwoka commented 6 years ago

when the volume sizes get too large, I sometimes get warnings like the following after execution of "tofu reco": ... DEBUG: Assigning task 'filter' to node 0 DEBUG: Padded width: 4096 DEBUG: Padding mode: clamp_to_edge DEBUG: Pass: 1, device: 1, region: [0.0, 900.0, 5.0] Error querying for program binary sizes Error querying for program binary sizes Error querying for program binary sizes Error querying for program binary sizes ERROR: ufo-task-error-quark: Volume size doesn't fit to memory (1) Warning: Program terminating, but clFFT resources not freed. Please consider explicitly calling clfftTeardown( )

Could one not force that last command at program exit?

tfarago commented 6 years ago

@matze have you seen this before?

matze commented 6 years ago

Yes, I have and in the normal course of action everything should be cleaned up properly. The question is why the destructor is not called when an error happens elsewhere.

By the way, I find the AMD FFT to be questionable anyway and would prefer the bundled Apple FFT. For example, all these "Error querying for program binary sizes" are non-issues blurted out to stdout by the AMD lib for no good reason.

Could one not force that last command at program exit?

At program exit, everything is cleaned up anyway, so I would not worry about these things at that time.