DRIVE Xavier CUDA modifications, thread creation without using Driveworks

Hello,

I know that the Driveworks SDK and the exposed APIs are not thread safe (from the SDK FAQs). Is it possible to write my own thread-safe code on the Drive Xavier though (using std CUDA C++ code)?

I am planning to get well versed with CUDA and working with threads since I would like to run my own DNN models, assign threads based on requirements and optimize using CUDA.

Can this be achieved on the DRIVE Xavier (without going through the Driveworks pipeline)? Just curious.

Hi raul_91,

Please check below links to see if help on your concerns.

https://devblogs.nvidia.com/cuda-pro-tip-always-set-current-device-avoid-multithreading-bugs/
https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index.html#thread-safety

Thanks!

Does this mean that I can modify/play with CUDA/cuDNN settings for Driveworks applications as well? Or are those settings abstracted away from the end user?

Dear raul_91,
When you use DW APIs, you do not use any CUDA, NvMedia APIs directly. DW APIs are implemented to make use of available HW engines in efficient manner. However if you make any global settings like cudaSetDevice() , it will be honoured by DW.

There are some driveworks samples included in DRIVE Software. There are some CUDA/cuDNN calls. You can take a look at them as a reference.

https://docs.nvidia.com/driveworks/dwx_samples_section.html

Thank you so much SivaRamaKrishna and VickNV.