For DL specifically, this article covers a couple of options that actually plug into the framework: https://developer.nvidia.com/blog/profiling-and-optimizing-d...
nvidia-smi is the core tool most folks use for quick "top"-like output, but there is also an htop equivalent: https://github.com/shunk031/nvhtop
A lot of other tools are build on top of the low-level NVML library (https://developer.nvidia.com/nvidia-management-library-nvml). There are also Python NVML bindings if you need to write your own monitoring tools.
They also i guess now have a web sever plugged into it which seems pretty cool
https://github.com/wookayin/gpustat https://github.com/wookayin/gpustat-web
https://developer.nvidia.com/blog/cuda-pro-tip-nvprof-your-h...