devPtr is returned as a device pointer to the decoded frame data. After this I do a memcpy:
cuMemcpy(gpu0, devPtr, nvh * pitch);
where gpu0 has been properly allocated.
Running compute-sanitizer initcheck on the application fails, saying that devPtr memory was not initialized. But it was loaded by NVDec. I tried writing 4 bytes to devPtr as an experiment but it failed as apparently NVDec does not allow writing to the decoded frame buffer.
memcheck, racecheck, and synccheck all pass.
Your advice to get this through initcheck would be appreciated. Thank you.
Thank you for your post! This is most likely a false positive, as I am assuming this is caused by the pitch (each end of row is uninitialized). You can ignore these errors using our error suppression feature: Compute Sanitizer User Manual :: Compute Sanitizer Documentation
Thank you, sir, for your response. I will try to ignore the error. Are you confirming that the NVDec loading of devPtr should have been fine if the width and pitch were the same, i.e, if all of devPtr was initialized? In other words, is compute-sanitizer aware of NVDec and what it is doing?
I can’t control the pitch that NVDec decides on. I’ll be happy to just ignore the error but I can’t figure out how. I added [–xml on --save d:\tmp\error.txt] but the file was not created. Note that the check output still comes to the stdout and I have to terminate the application because it wants to decode 2000 frames and I get an error for each one. Thank you.
Note: I had two dashes for xml but the forum code changes it.
Please note that, even if you do not use the CUDA 12.3 toolkit to build your application, you can still use compute-sanitizer that is shipped with it. You do need however to install the driver provided with the toolkit for compute-sanitizer 2023.3 to work. Thanks!
Which driver are you referring to please? I have a specific 3090 graphics card driver that I run. It is not the latest because the latest has some regressions.
Sanitizer 2023.3 requires a 525 driver version or newer. If your current driver meets this requirements, you don’t need to install a new one. Thanks!
Ouch, that hurts. I run 516 because in 525 NVDec’s VPP has a broken deinterlacer. Guess it’s time to report that to the NVDec guys. I hope they are as responsive as you. ;)
I really do appreciate your excellent support and responsiveness.
I’ll give that a try. Just for fun I tried the new sanitizer but it said it needed 525 or better. I’m upgrading to a 4090 so will probably have to upgrade the driver in any case. I will keep you informed, sir, and thank you for your professional and dedicated approach. I would hope to match that in my support for my products!