Samuel Debionne (1a3c68ed) at 28 Mar 18:41
Allow to start (again) a finished thread
Closes #209
Samuel Debionne (eb858b4e) at 28 Mar 18:39
When a thread is finished, it cannot be restarted:
src/common/src/ThreadUtils.cpp, 257): Error: Thread already started
Alejandro Homs Puron (5918bb23) at 26 Mar 22:32
First version with XEyeCamera & Euresys Grabber
... and 27 more commits
Alejandro Homs Puron (88800c5b) at 25 Mar 20:47
Add sdk/xeye-camera-control to fhgxeye
... and 34 more commits
@debionne, I have reverted 84ca7598 and added added the acc_hw_nb_buffers
parameters, which defaults to 64 and has a minimum of 16 in order to be backward compatible (we have never tested Lima with smaller values).
The new accumulation buffer overrun code checks the data pointers (instead of frame numbers), so we should be able to reproduce the issue when activating image_flip = [0, 1]
and a small acc_hw_nb_buffers = 16
. Could you please test?
Please let me know how it works.
Alejandro Homs Puron (71c3e6fe) at 25 Mar 14:38
Formalize all buffer memory allocations in CtAccumulation
... and 8 more commits
Alejandro Homs Puron (055d3071) at 25 Mar 14:38
Fix CtAccumulation buffer management
Alejandro Homs Puron (f2eef41b) at 25 Mar 14:38
Allow tunning HW nb. of buffers in accumulation
... and 24 more commits
The latest accumulation buffer management also includes the saturated images and temporary accumulation buffers for ACC_MEAN
. The BufferHelper::reqMemSizePercent
is now of type double
, which can provide far more precision than 4 kB page in a 1 TB computer.
@debionne, I suggest that you try the latest code in this MR with the following Iris LimaCCDs
properties:
* BufferAllocParameters: <initMem=1, durationPolicy=Persistent, sizePolicy=Fixed, reqMemSizePercent=10>
* AccBufferParameters: <initMem=1, durationPolicy=Persistent, sizePolicy=Fixed, reqMemSizePercent=10>
* SavingZBufferParameters: <initMem=1, durationPolicy=Persistent, sizePolicy=Fixed, reqMemSizePercent=11>
That should use a maximum of 10+10+11=31 %
of computer memory for persistent buffers, enough to perform DAQ in pipeline mode with GPFS. It is intentionally bellow 50 %
in order to ensure that all the memory can by allocated in the same NUMA
node.
I would be interested to see the results. If the code behaves well, I propose to create a v1.10.0rc9
tag.
Alejandro Homs Puron (d672a67b) at 24 Mar 02:20
Formalize all buffer memory allocations in CtAccumulation
@debionne, after developing BufferHelper
code, I have concerns about the consequences of 84ca7598 in buffer allocation dynamics. It forces a systematic auxiliary Buffer
allocation for the results of the SoftOpId
(bin/roi/flip), which scapes BufferHelper
's domain.
What do you think about the possibility of manually increasing the number of camera plugin HW buffers in accumulation, defaulting to the current fixed value (64
)? The latest overrun checking code uses the Data::data()
equality with the oldest frame being accumulated.
These patches include several improvements in CtAccumulation
:
CtBuffer
Camera::AcqThread
context, with parallel, non-blocking Processlib
task(s)Alejandro Homs Puron (4a3a5b25) at 22 Mar 19:13
Formalize all buffer memory allocations in CtAccumulation
... and 8 more commits
Alejandro Homs Puron (7db138ac) at 22 Mar 19:13
Fix CtAccumulation buffer management