NVIDIA GPU 持久模式--学习笔记

  1. 必须先运行NVIDIA内核模式驱动程序并将其连接到目标GPU设备,然后才能与该设备进行任何用户交互。驱动程序的行为因操作系统而异。通常,如果内核模式驱动程序尚未运行或尚未连接到目标GPU,则任何尝试与该GPU进行交互的程序的调用都会透明地导致该驱动程序加载和/或初始化GPU。当所有GPU客户端终止时,驱动程序将取消初始化GPU。
  2. 驱动程序加载行为对最终用户而言有两种重要的作用:
    1. 应用启动延迟:由于ECC清理行为,触发GPU初始化的应用程序可能会导致每个GPU短暂(1-3秒的数量级)启动成本。如果GPU已初始化,则不会进行清理。
    2. 保存驱动状态:如果驱动程序取消了GPU的初始化,则与该GPU相关的某些非持久状态将丢失,并在下次初始化GPU时恢复为默认状态。请参阅数据持久性。为了避免这种情况,GPU应该保持初始化状态。
  3. 不同系统设置不同:
    1. windows系统:
      1. 在Windows上,内核模式驱动程序在Windows启动时加载,并保持加载状态,直到Windows关闭。因此,Windows用户通常可以忽略本文档中描述的驱动程序持久性含义。
      2. 注意:驱动程序重载事件(例如由于TDR或安装新的驱动程序)将导致非持久状态复位。
      3. Linux:在默认情况下X在目标GPU上运行的Linux系统下,通常会启用X模式,并启动内核模式驱动程序并使之从计算机启动到关闭都保持活动状态。在无头系统或没有长期存在的类似X的客户端维护目标GPU句柄的情况下,每次目标GPU应用程序启动和停止时,内核模式驱动程序都会初始化和取消初始化目标GPU。在HPC环境中,这种情况非常普遍。由于在这种情况下通常需要使GPU初始化,因此NVIDIA提供了两种更改驱动程序行为的选项: 持久模式(传统)和持久守护程序。
  4. 驱动程序状态:
    1. GPU初始化生命周期:
      1. 从驱动程序初始化GPU到GPU初始化之间,这种状态一直持续。这是最狭窄的生命周期,因为内核驱动程序本身仍处于加载状态,并且可能正在管理其他GPU。如果客户端应用程序尝试访问GPU,则GPU通常会初始化GPU。最后一个客户端退出后,GPU通常会取消初始化。
      2. 状态:
        1. 计算模式,计费模式,持久性模式
        2. 应用程序时钟,应用程序时钟权限设置
        3. 基于SW的功率上限
        4. 易失性ECC错误,待退页
    2. 内核驱动程序生命周期:
      1. 从驱动程序加载到驱动程序卸载(例如rmmod),这种状态一直持续。在大多数环境中,这是整个计算机引导周期。例外包括GPU重置事件和驱动程序安装。
      2. 状态:会计流程数据
    3. GPU开发板生命周期:
      1. 这种类型的状态会在启动周期中持续存在,因为它存储在板子的持久性信息光盘中。在某些情况下,可以明确清除这种状态,但通常认为该状态在整个板子的生命周期中都是持久的-直到用户下一次更改为止。
      2. 状态:
        1. ECC模式,总计ECC错误,已淘汰的页面
        2. GPU操作模式,驱动程序模型

猜你喜欢

转载自blog.csdn.net/weixin_45647721/article/details/128339087