When shipping an application which links against Microsoft Visual Studio libraries dynamically, you need to ship the vc_redist.x64.exe installer with your application.
You can find that inside your local MSVS compiler installation or as download on Microsoft’s site:
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
These need to be installed once in case the target machine doesn’t have it.
The MSVS redistributables are version controlled with manifests and if there are multiple runtimes for the same compiler installed (due to service packs), Windows will pick the matching one automatically.
If you link against static libraries, these are getting linked into your application binary and there is no need to ship these.
If you search for the folder redist, you will also find these files individually. You need the x64 versions for OptiX applications.
You could also put the necessary release redistributable files next to your executable, but that’s just bloat when every program would do that.
Note that the debug versions of these are found inside that redist folder above as well and they reside inside their own folder debug_nonredist. As the name says these should NOT be redistributed. I assume that’s because they contain the information about the library implementation which is effectively licensed with the MSVS product only. You shouldn’t ship any debug programs anyway.
But you need them if you debug remotely on a secondary system, which I do all the time. In that case copy the debug versions of the required DLLs next to your debug executable on the remote machine.
With OptiX 7 applications there might be additional CUDA libraries required.
If you programmed your application with the CUDA Runtime API linked dynamically, you’d also need to ship the CUDA Runtime DLL, for example, when using the CUDA Toolkiit 10.1 that is named cudart64_101.dll.
Again, when linking against the static runtime version cudart_static.lib inside the lib folder, that wouldn’t be required either.
When using the CDUA Driver API, no additional DLL needs to be shipped. That library comes with the NVIDIA display driver, which means the end user only needs to have a display driver installed which supports the CUDA toolkit version you used for your OptiX 7 application. Newer drivers will support older CUDA vrsions as well.
(I prefer the CUDA Driver API because it’s additionally more explicit about the CUDA context management on multiple devices.)
If you use the CUDA Runtime Compiler NVRTC to compile CUDA source to PTX input for OptiX at runtime, you’d also need to ship the two DLLs (here with CUDA 10.1 names): nvrtc64_101_0.dll and nvrtc-builtins64_101.dll
You’ll find all these inside your CUDA toolkit installation’s bin folder.