Я использую этот проект https://github.com/kunzmi/managedCuda для выполнения вызовов NVML. Иногда, когда установленная версия драйвера и файл NVML.dll не выровнены, клиент имеет более новую или более старую версию драйвера, я получаю некоторые проблемы с вызовами или не удается полностью инициализироваться.
Файл NVML.dll находится в папке «C: \ Program Files \ NVIDIA Corporation \ NVSMI», мой текущий метод заключается в том, чтобы просто поместить DLL в мой проект, а библиотека managedCuda использует ее оттуда.
Я хочу прекратить связывать DLL с моим программным обеспечением или, возможно, использовать ее в качестве запасного варианта, когда DLL не найдена в системе. Но кажется, что managedCuda ожидает, что файл nvml.dll будет находиться в каталоге проекта.
Что было бы лучшим способом решить мою проблему. Я подумывал о том, чтобы приложение скопировало необходимый DLL-файл при запуске в свои собственные файлы. Но это не правильно. Есть предложения?