Hello,
We are planning to deploy a multi-threaded computer vision application running on Qualcomm Kryo 460. FastCV library appears to be a very good option to increase the performance of some kernels in our application.
So we have the following questions:
- Are there any functional or performance issues with using FastCV in a multi-threaded application?
- Is FastCV implemented as a thread-safe library?
Thank you in advance.
fastCV by design is single threaded implementation and so you can use it in a multi-threaded application as it is a thread-safe library.
No functional issues expected, performance is based on processor cycles available at run time.
Please ensure you do the "FastCV initializations" and "FastCV de-initializations" steps only once in case all threads are in the same process.
As a step 1 during session init, do FastCV initializations by calling fcvSetOperationMode with desired mode followed by fcvMemInit function call.
Then as a step 2 allocate memory using fcvMemInit and Call fastCV functions of your choice till the end of the session in the application.
Then as a step 3 at the end, during session tear down, do fcvMemFree the previously allocated buffers above and then perform FastCV de-initializations by calling fcvMemDeInit followed by fcvCleanUp functions.