CUDA学习(二十四)

简介:

版本和兼容性:
在开发CUDA应用程序时,开发人员应该注意以下两个版本号:计算能力,描述计算设备的一般规格和功能(请参阅计算能力)以及描述CUDA所支持功能的CUDA驱动程序API版本 驱动程序API和运行时。
驱动程序API的版本在驱动程序头文件中定义为CUDA_VERSION。 它允许开发人员检查他们的应用程序是否需要比当前安装的更新的设备驱动程序。 这一点很重要,因为驱动程序API是向后兼容的,这意味着针对特定版本的驱动程序API编译的应用程序,插件和库(包括C运行时)将继续在随后的设备驱动程序版本上工作,如图 11.驱动程序API不是向前兼容的,这意味着针对特定版本的驱动程序API编译的应用程序,插件和库(包括C运行时)将不适用于以前版本的设备驱动程序。
需要注意的是,受支持的版本的混合和匹配有一些限制:

  • 由于在系统上一次只能安装一个版本的CUDA驱动程序,因此安装的驱动程序必须与驱动程序,插件或必须运行的库的最大驱动程序API版本相同或更高 该系统已建成。
  • 应用程序使用的所有插件和库必须使用相同版本的CUDA Runtime,除非它们静态链接到Runtime,在这种情况下,多个版本的运行时可以共存于同一个进程空间中。 请注意,如果使用nvcc链接应用程序,默认情况下将使用CUDA运行时库的静态版本,并且所有CUDA Toolkit库都静态链接到CUDA运行时。
  • 除非静态链接到这些库,否则应用程序使用的所有插件和库都必须使用与运行库相同版本的库(如cuFFT,cuBLAS等)。
    1

计算模式:
在运行Windows Server 2008及更高版本或Linux的Tesla解决方案中,可以使用NVIDIA的系统管理界面(nvidia-smi)在以下三种模式之一中设置系统中的任何设备,该系统是作为驱动程序的一部分分发的工具:

  • 默认计算模式:多个主机线程可以使用该设备(通过在此设备上调用cudaSetDevice(),使用运行时API或在使用驱动程序API时使当前与设备关联的上下文相同)
  • 独占进程计算模式:在系统中的所有进程上,设备上只能创建一个CUDA上下文,并且该上下文可以在创建该上下文的进程内按照期望的那样多个线程。
  • 独占进程和线程计算模式:系统中的所有进程只能在设备上创建一个CUDA上下文,并且该上下文一次只能在一个线程上运行。
  • 禁止的计算模式:设备上不能创建CUDA上下文。

这意味着,特别是,如果设备0变成独占进程模式并被另一进程使用,则使用运行时API而不显式调用cudaSetDevice()的主机线程可能与设备0以外的设备相关联, 在独占进程和线程模式下,由另一个线程使用,或在禁止模式下使用。 cudaSetValidDevices()可用于从优先级列表中设置设备。
还要注意的是,对于具有Pascal架构的设备(计算能力主版本号6和更高版本),支持计算抢占。 这使得计算任务可以在指令级别上被抢占,而不像以前的Maxwell和Kepler GPU架构那样具有线程块粒度,其优点是可以防止长时间运行的内核的应用程序垄断系统或超时。 但是,会出现与计算抢占相关的上下文切换开销,这些开销会在支持存在的那些设备上自动启用。 可以使用具有属性cudaDevAttrComputePreemptionSupported的单个属性查询函数cudaDeviceGetAttribute()来确定正在使用的设备是否支持计算抢占。 希望避免与不同进程相关联的上下文切换开销的用户可以通过选择独占进程模式来确保GPU上只有一个进程是活动的。
应用程序可以通过检查computeMode设备属性来查询设备的计算模式(请参阅设备枚举)。
模式开关:
具有显示输出的GPU将一些DRAM存储器专用于所谓的主表面,其用于刷新其输出被用户查看的显示设备。 当用户通过更改显示器的分辨率或位深度(使用NVIDIA控制面板或Windows上的显示控制面板)来启动显示器的模式切换时,主表面所需的内存量会发生变化。 例如,如果用户将显示分辨率从1280x1024x32位更改为1600x1200x32位,则系统必须将7.68 MB专用于主表面,而不是5.24 MB。 (启用消除锯齿的全屏图形应用程序可能需要更多显示内存用于主表面)。在Windows上,可能启动显示模式切换的其他事件包括启动全屏DirectX应用程序,按Alt + Tab以执行任务 从全屏DirectX应用程序切换,或按Ctrl + Alt + Del锁定计算机。
如果模式切换增加主表面所需的内存量,则系统可能不得不分配专用于CUDA应用程序的内存分配。 因此,模式切换会导致对CUDA运行时的任何调用失败并返回无效的上下文错误。
用于Windows的Tesla计算集群模式:
使用NVIDIA的系统管理界面(nvidia-smi),可以将Windows设备驱动程序置于TCC(Tesla Compute Cluster,特斯拉计算集群)模式,用于计算能力为2.0或更高的Tesla和Quadro系列设备。
该模式具有以下主要优点:

  • 它可以在非NVIDIA集成显卡的集群节点中使用这些GPU;
  • 它使这些GPU可以通过远程桌面直接使用,也可以通过依赖远程桌面的集群管理系统来使用;
  • 它使这些GPU可用于作为Windows服务运行的应用程序(即在会话0中)

但是,TCC模式不支持任何图形功能
timg

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
并行计算 异构计算 数据管理
|
并行计算 API
|
并行计算 API
|
并行计算 调度
|
缓存 并行计算 编译器
|
并行计算 程序员 调度
|
并行计算 编译器 C语言
|
并行计算 编译器 程序员