AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1201072
Accepted
Md Narimani
Md Narimani
Asked: 2020-01-07 08:54:04 +0800 CST2020-01-07 08:54:04 +0800 CST 2020-01-07 08:54:04 +0800 CST

NVIDIA On-Demand 选项如何在 NVIDIA X 服务器设置中工作?

  • 772

我在 Ubuntu 19.10 上安装了 Nvidia 专有驱动程序。
在 Prime Profiles 部分,有三个选项:
* NVIDIA(性能模式)
* NVIDIA On-Demand
* Intel(省电模式)

第一个和最后一个选项很明显,但我不知道第二个选项是如何工作的。它如何检测哪些应用程序需要 NVIDIA 驱动程序而哪些不需要?

nvidia graphics hybrid-graphics nvidia-prime
  • 4 4 个回答
  • 46784 Views

4 个回答

  • Voted
  1. Md Narimani
    2020-01-09T09:54:22+08:002020-01-09T09:54:22+08:00

    好的,我终于想通了。目前,NVIDIA 似乎可以为 OpenGL 和 Vulkan 应用程序进行卸载渲染。
    为了启用此卸载渲染,您必须将 Prime 配置文件设置为“按需”,然后对于 Vulkan 卸载,您必须将此变量放入/etc/environment文件中:
    __NV_PRIME_RENDER_OFFLOAD=1

    对于 OpenGL 应用程序,您必须输入以下变量:
    __NV_PRIME_RENDER_OFFLOAD=1
    __GLX_VENDOR_LIBRARY_NAME=nvidia

    重新启动后,它将开始渲染卸载。

    为了检查正在使用的显卡,您可以在终端中输入以下命令:
    glxinfo | grep vendor

    • 35
  2. Best Answer
    WinEunuuchs2Unix
    2020-01-15T04:35:15+08:002020-01-15T04:35:15+08:00

    来自:Part I. 安装和配置说明

    第 35 章 PRIME 渲染卸载

    PRIME 渲染卸载是让 X 屏幕由一个 GPU 渲染的能力,但在该 X 屏幕中选择某些应用程序以在不同的 GPU 上渲染。这在与动态电源管理结合使用时特别有用,可让 NVIDIA GPU 处于关闭状态,除非需要渲染选定的性能敏感应用程序。

    渲染 X 屏幕大部分的 GPU 被称为“接收器”,而某些应用程序渲染被“卸载”到的 GPU 被称为“源”。渲染卸载源生成呈现在渲染卸载接收器上的内容。NVIDIA 驱动程序可以作为 PRIME 渲染卸载源,卸载 GLX+OpenGL 或 Vulkan 的渲染,呈现到由 xf86-video-modesetting X 驱动程序驱动的 X 屏幕。

    X 服务器要求

    NVIDIA 的 PRIME 渲染卸载支持需要 X.Org X 服务器中的以下 git 提交:

    • 7f962c70 - xsync:在 SyncCreate 中添加资源,导出 SyncCreate

    • 37a36a6b - GLX:添加每个客户端的供应商映射

    • 8b67ec7c - GLX:使用发送客户端查找 XID

    • 56c0a71f - GLX:添加功能以更改客户供应商列表

    • b4231d69 - GLX:设置 GlxServerExports::{major,minor}Version

    在撰写本文时,这些提交仅在 X.Org X 服务器的 master 分支中,还没有在任何官方 X.Org X 服务器版本中。

    • 15
  3. Stefan Krüger s-light
    2020-03-30T04:29:16+08:002020-03-30T04:29:16+08:00

    作为Md Narimani 答案的扩展:我可以确认这实际上在 kubuntu 19.10 和 nvidia 驱动程序版本 440 上为我工作

    一些背景信息可以在第 34 章找到。 PRIME 渲染卸载

    您也可以在 GUI 中设置“按需”选项:Nvidia X Server Settings - PRIME Profiles: NVIDIA On-Demand
    在此处输入图像描述 然后重新启动。

    那么您也可以直接从命令行使用环境变量启动您的应用程序 - 因此您可以根据需要切换 GPU:

    stefan@stefan-Zen:~$ glxheads :0
    Name: :0
      Display:     0x556081a45d40
      Window:      0x7000002
      Context:     0x556081a64a70
      GL_VERSION:  3.0 Mesa 19.2.8
      GL_VENDOR:   Intel Open Source Technology Center
      GL_RENDERER: Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2) 
    stefan@stefan-Zen:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxheads :0
    Name: :0
      Display:     0x55f6dd9097a0
      Window:      0x7000002
      Context:     0x55f6dd944878
      GL_VERSION:  4.6.0 NVIDIA 440.64
      GL_VENDOR:   NVIDIA Corporation
      GL_RENDERER: GeForce RTX 2060/PCIe/SSE2
    
    
    • 13
  4. WiR3D
    2021-02-15T22:14:03+08:002021-02-15T22:14:03+08:00

    根据@md-narimani 和@dominick-pastore 的回答,实际上已经准备好作为nvidia-prime-applet包的一部分为此目的提供的shell 脚本。

    您可以将它们放在您通常使用的任何命令之前。

    nvidia-optimus-offload-glx glxheads :0
    nvidia-optimus-offload-vulkan vkcube
    

    但这只有在正确加载 nvidia 内核驱动程序并且 Xorg 已正确生成 Nvidia 屏幕时才有效,您可以通过以下方式进行测试:

    cat /var/log/Xorg.0.log | grep -i NVIDIA
    # it should output a bunch of lines with "NVIDIA(G0)"
    

    如果屏幕没有正确检测到,则创建/etc/X11/xorg.conf.d/nvidia.conf并使用第 34 章中的说明中的内容填充它。@stefan-krüger 提到的PRIME 渲染卸载。

    • 1

相关问题

  • 如何让更多人参与为 Ubuntu 改进 X.org?[关闭]

  • 未连接到任何可见进程的令人讨厌的 CPU 峰值

  • 10.04 Lucid 中的多席位状态如何?[关闭]

  • 升级到 10.04 后字体模糊,Nvidia 问题?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve