Hello, I am trying to import an NvSciBufObj object into CUDA external memory. The code is as follows. But when executing the function CUDAImportExternalMemo(), it returns error code 1. What is the reason for this?
The function PopulateBufAttr() retrieves the properties of the NvSciBufObj object. Looking forward to your reply, thank you.
dimw::imgstream::BufferAttrs m_bufAttrs;
dimw::imgstream::PopulateBufAttr(data, m_bufAttrs);
cudaExternalMemoryHandleDesc memHandleDesc;
memset(&memHandleDesc, 0, sizeof(memHandleDesc));
memHandleDesc.type = cudaExternalMemoryHandleTypeNvSciBuf;
memHandleDesc.handle.nvSciBufObject = data;
memHandleDesc.size = m_bufAttrs.size;
int cudaErr = cudaImportExternalMemory(&m_extMem, &memHandleDesc);
if (cudaSuccess != cudaErr) {
fprintf(stderr,“Unable to import buffer to CUDA (%d)\n”,cudaErr);
}
cudaExternalMemoryBufferDesc bufferDesc;
memset(&bufferDesc, 0, sizeof(bufferDesc));
bufferDesc.offset = 0;
bufferDesc.size = m_bufAttrs.size;
cudaErr = cudaExternalMemoryGetMappedBuffer(&m_devPtr, m_extMem, &bufferDesc);
if (cudaSuccess != cudaErr) {
fprintf(stderr,“Unable to map CUDA buffer (%d)\n”,cudaErr);
}