When working with the C++ binding header, the class SVMAllocator comes with a constructor accepting a cl::Context parameter.
But when cl::vector with SVMAllocator constructing with default value, it will call a enqueueMapSVM and use cl::CommandQueue::getDefault to do the mapping. It may not associate with the cl::Context which the SVMAllocator belongs.
When working with the C++ binding header, the class SVMAllocator comes with a constructor accepting a cl::Context parameter.
But when cl::vector with SVMAllocator constructing with default value, it will call a enqueueMapSVM and use cl::CommandQueue::getDefault to do the mapping. It may not associate with the cl::Context which the SVMAllocator belongs.
For example, take a look at this piece of code
The code crashes when constructing input. It would be better if SVMAllocator comes with a CommandQueue parameter.