Когда я установил Ubuntu (вариант Mate, но я не думаю, что это имеет значение) 18.04, я был очень рад видеть, что теперь была полная поддержка хранилища для nvidia cuda и python numba, которые раньше были болью для установить в прежних версиях.
У меня есть nividia-driver-390 (проприетарный), у меня есть установка cuda в репозитории, установка numba в репозитории python-3 и установка nvidia-cuda-toolkit для репозитория.
Cuda работает в том смысле, что nvcc может компилировать и выполнять примеры в C-коде. Numba работает в том смысле, что я могу использовать @jit и иметь ускорение процессора. Пикуда работает. Я могу использовать pycuda в python3 и заставить его использовать cuda.
Тем не менее, предполагается, что numba допускает ускорение GPU через cuda, и это не удается. Когда я выполняю простой пример, в конце длинного следа ошибок у меня появляется:
RuntimeError: Missing libdevice file for compute_35.
Please ensure you have package cudatoolkit 7.5.
Install package by:
conda install cudatoolkit=7.5
Однако я не использовал conda для установки numba, я использовал репозиторий. И похоже, что cudatoolkit из репозитория имеет версию 9.1, а не 7.5.
Некоторые пользователи узнали, что виновником является то, что исполняемый код, установленный с помощью numba, был скомпилирован с библиотеками cudatoolkit 7.5, а не с установленными в репозитории 9.1.
Какой самый чистый способ решить эту проблему? Я предпочитаю держать как можно ближе к официальным репозиториям.
У меня была та же самая проблема. Я решил это путем установки miniconda, и conda устанавливают эти два пакета:
conda install cudatoolkit
conda install numba
Затем это работает, но не действительно красивое.