Observed limitations and potential issues

Below we have listed the possible exceptions and errors you may get when using multiple zivid cameras. We only got these when running 4 cameras simultaneously on a single computer with a very high load. With very high load, we mean 4 Zivid cameras continuously capturing with highest possible acquisition rate for an extended period of time using fastest capture settings.

USB controller errors

Important

Can only occur for Zivid One+.

Typical exceptions:

  • Frames were overwritten in snapshot mode

  • Failed to acquire an image from the driver (CAM_API_STS_FLUSHED_BY_CAMERA_REMOVE)

  • Failed to acquire an image from the driver (CAM_API_STS_REQUEST_TIMEOUT)

  • Failed to wait for image stream event (CAM_API_STS_TIMEOUT)

Some USB chipsets will not perform well during high load, e.g. multiple captures at the same time. The above exceptions can indicate that the USB controller, where the cameras are connected, is not working properly. If these exceptions occur, switch to another USB controller. You can check which USB controller you are connected to by

Go to Device Manager and change view to devices by connections (ViewDevices by connections).

Type lsusb -t in command prompt.

Note

Try to use different USB ports or a different PC.

GPU memory errors

Important

Only observed with Zivid One+.

Typical exceptions:

  • An OpenCL error occurred: Failed to map image to host memory

  • An OpenCL error occurred: Failed to enqueue kernel

  • An OpenCL error occurred: Failed to wait for image to be mapped to host memory

Capturing during extended periods with very high load on Nvidia GPUs can cause OpenCL out-of-memory related exceptions. The recurrence of this error depends on your GPU speed and RAM size. Tests with moderate to high load, e.g. 2 seconds with the fastest capture then 1-second break, did not give any errors.

You can test this by inspecting the GPU memory usage Window’s task manager or the system monitor on Ubuntu.

../../../_images/gpu_usage_trace_window.png

Note

This only happened with Nvidia GPUs during very high load testing.

GPU drivers errors

Important

Only observed with Zivid One+.

CPU/GPU driver versions affect the performance of the multi-zivid setup. Make sure that you use the latest drivers for your GPU. Check GPU Driver explains how you can check your driver version and/or upgrade your drivers.

OpenCL drivers errors

Important

Only observed with Zivid One+.

Typical exceptions:

  • Abort was called at 256 line in file:
    ../neo/runtime/memory_manager/host_ptr_manager.cpp
    
  • Any other Intel NEO error.

Depending on your GPU you should use different versions of OpenCL. Check OpenCL Driver demonstrates how to check which OpenCL version you have. If you are using intel NEO on Linux, make sure that you use version 20.08 or newer. Older versions of this driver can be unstable. How to update Intel NEO version is explained in install openCL drivers in Ubuntu.

Note

Intel NEO for Linux requires version 20.08.

Conclusion

  • We have observed limitations and potential issues only with Zivid One+ cameras. This is mainly because Ethernet (Zivid Two) is more robust than USB (Zivid One+), which also holds for single-camera use.

  • We have observed limitations and issues only in the following extreme conditions:

    • Very high load (no pause between captures; uncommon for the majority of applications)

    • Specific USB chipsets and GPU and OpenCL driver versions

    • Using four cameras simultaneously

  • It is possible to recover from the observed exceptions by recapturing or reconnecting routines.

  • The exceptions are not specific for multiple Zivid One+ camera use, just more frequent in extreme conditions mentioned above.

  • The exceptions are expected to occur as frequently as for single Zivid One+ camera use in comparable conditions.