我的笔记本电脑有 2 个显卡,非常类似于:https://www.linuxbabe.com/desktop-linux/switch-intel-nvidia-graphics-card-ubuntu。
我想拥有英特尔仅用于显示目的的显卡,以及英伟达用于繁重计算的图形卡(GPGPU)。
我的问题:
- 我还需要安装 NVidia 驱动程序吗?看来司机是仅供展示?那么,如果我这样做,是否必须安装 NVidia 驱动程序不是期望使用 NVidia 卡进行显示?
- 如果没有NVidia驱动,那些第三方库还能运行吗?例如Tensorflow等?从https://docs.nvidia.com/deploy/cuda-compatibility/index.html,上面写得很清楚:
要构建应用程序,开发人员只需安装 CUDA 工具包和链接所需的必要库。
为了运行 CUDA 应用程序,系统应具有支持 CUDA 的 GPU 和与用于构建应用程序本身的 CUDA 工具包兼容的 NVIDIA 显示驱动程序。
在我看来:
- 为了运行 CUDA 应用程序,我必须安装 NVidia 驱动程序,以启用 NVidia 显卡。
- 但是,NVidia 驱动程序用于显示目的。为了使用它,我必须使用NVidia显卡来显示,而不是使用Intel卡来显示???
抱歉我的天真问题。一种概念上的困惑……期待答案。
答案1
任何 GPU 的使用都需要驱动nvidia
程序,而对于显示,则需要同时加载nvidia_drm
和nvidia_modeset
,或者至少在我的计算机上是这种情况。只需在启动时使用文件将它们列入黑名单/etc/modprobe.d/
即可阻止加载图形堆栈,但 CUDA 可以正常工作。
事实上,这是我用来防止drm
(据我所知用于显示目的)驱动程序依赖于的技巧nvidia
,因此,在新版本发布时允许重新加载后者而不需要任何依赖链。
这对于由集成 BMC 提供显示并且您的 GPU(可能)没有任何输出的服务器特别有用。
答案2
看来只要我这样做,NVidia显卡就可以用于CUDA计算不是启用它以进行显示。
答案3
如果您使用的是笔记本电脑,则必须使用“optimus/prime”技术来完成您想要的操作,如链接文章中所述。 nvidia 驱动程序决定(根据您的输入)使用哪个显卡。您需要这个,因为笔记本电脑只有一个显示输出,并且驱动程序之间需要某种协调。