I want to match the Brief Features from the ORB Feature detector between two frames on the GPU, however vpiArrayLockData only allows recieving a host buffer pointer, not cuda. Is there any other intended way of getting a cuda pointer from an array? Or is it best to just create my own data and size pointer and use vpiArrayCreateWrapper, so I can submit that to the ORB feature detector and then use the data and size pointers with the populated data.
Out of curiocity, is there any particular reason why the decision was made you can’t get a cuda pointer from vpiArrayLockData, it seems like in VPI 1.0 you could.
We can file a feature request for this. Please let us know if you need so.
A workaround is to wrap a pre-allocated GPU buffer.
So you can use the pointer to get the data after ORB jobs are done (vpiStreamSync).
Cheers, that would be more convenient, less bookkeeping on my end. I’ve wrapped mallocmanaged (for dgpu) or cudaHostAlloc with cudaHostAllocMapped (for Jetson Devices) for the time being, and seems to work fine (and use vpiArrayLock when matching). I haven’t made a feature request before, could you point me into the right direction?
We already file the feature request for you.
It will be evaluated and priorities internally.