借助GPU Boost和K80 Autoboost提高性能
原网站:https://devblogs.nvidia.com/increase-performance-gpu-boost-k80-autoboost/
由于我主要使用nvidia-smi,故nvcc不做了解...有需要的可以参考原网站
NVIDIA®GPU Boost™是NVIDIA®GeForce®和Tesla®GPU上的一项功能,可在有足够的功率和散热空间的情况下通过提高GPU内核和内存时钟速率来提高应用程序性能)。对于Tesla GPU,GPU Boost是针对在集群上运行的计算密集型工作负载而定制的。在这篇文章中,我将更详细地描述GPU Boost,并向您展示如何在应用程序中利用它。我还介绍了Tesla K80 autoboost,并演示了它可以自动匹配显式控制的应用程序时钟的性能。
Tesla GPU的目标是特定的功率预算,例如Tesla K40的TDP(热设计功率)为235W,Tesla K80的TDP为300W。这些TDP额定值是上限,图1中的图表显示许多HPC工作负载并不接近此功率极限。特斯拉的NVIDIA GPU Boost可让用户通过使用可用功率余量来选择更高的图形时钟速率,从而提高应用程序性能。

图1:实际应用程序的平均GPU功耗
NVIDIA GPU Boost通过应用程序时钟设置公开给Tesla加速器使用,并且在新的Tesla K80加速器上也可以通过新的autoboost功能启用,该功能默认启用。用户或系统管理员可以通过以下任一方法禁用自动升压功能并为应用程序手动设置正确的时钟:
nvidia-smi 在节点上本地运行命令行工具
使用NVIDIA系统管理界面控制GPU Boost
您可以 nvidia-smi 用来控制应用程序时钟,而无需对应用程序进行任何更改。
您可以通过将查询选项(-q) 传递给来显示当前应用程序时钟设置nvidia-smi。使用 -i 和显示选项(-d),您可以过滤此视图以仅显示特定GPU的时钟信息。
nvidia-smi -q -i -d CLOCK
==============NVSMI LOG============== Timestamp : Sat May ::
Driver Version : 384.81 Attached GPUs :
GPU ::00.0
Clocks
Graphics : MHz
SM : MHz
Memory : MHz
Video : MHz
Applications Clocks
Graphics : MHz
Memory : MHz
Default Applications Clocks
Graphics : MHz
Memory : MHz
Max Clocks
Graphics : MHz
SM : MHz
Memory : MHz
Video : MHz
Max Customer Boost Clocks
Graphics : N/A
SM Clock Samples
Duration : 26.64 sec
Number of Samples :
Max : MHz
Min : MHz
Avg : MHz
Memory Clock Samples
Duration : 26.64 sec
Number of Samples :
Max : MHz
Min : MHz
Avg : MHz
Clock Policy
Auto Boost : On
Auto Boost Default : On
在更改应用程序时钟之前,您需要将GPU置于持久性模式并查询可用的应用程序时钟速率。持久模式可确保即使GPU上没有运行CUDA或X应用程序,驱动程序仍保持加载状态。这将保持当前状态,包括请求的应用程序时钟。持久性模式对于使应用程序时钟更改持续到应用程序运行是必需的。使用以下命令行启用持久性模式(对于GPU 0)。可以看出GPU0的对应频率为Graphics : 562 MHz,Memory : 2505 MHz
sudo nvidia-smi -pm ENABLED -i -smi -pm ENABLED -i
之后可以查看频率
nvidia-smi -q -i , -d SUPPORTED_CLOCKS
Timestamp : Sat May ::
Driver Version : 384.81 Attached GPUs :
GPU ::00.0
Supported Clocks
Memory : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Memory : MHz
Graphics : MHz GPU ::00.0
Supported Clocks
Memory : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Graphics : MHz
Memory : MHz
Graphics : MHz
请注意,支持的图形时钟频率与特定的内存时钟频率相关,因此在设置应用程序时钟时,必须同时设置内存时钟和图形时钟。使用 -ac 命令行选项执行此操作
sudo nvidia-smi -ac , -i 0 Applications clocks set to "(MEM 3004, SM 875)" for GPU ::00.0 All done
可以使用 -rac (“重置应用程序时钟”)选项重置默认值
$ sudo nvidia-smi -rac -i
All done.
为避免在多用户环境中出现麻烦,更改应用程序时钟需要管理特权。但是,系统管理员可以通过将应用程序时钟许可权设置为 UNRESTRICTED 使用 -acp (“应用程序时钟许可权”)选项来 放宽此要求,以允许非管理员用户更改应用程序时钟 nvidia-smi
$ sudo nvidia-smi -acp UNRESTRICTED -i
Applications clocks commands have been set to UNRESTRICTED for GPU ::00.0
All done.
请注意,建议使用应用程序时钟设置。如果由于散热或功耗等原因,GPU无法在选定的时钟上安全地运行,它将动态降低时钟。您可以使用来查询是否发生了这种情况 nvidia-smi -q -i -d PERFORMANCE 。此行为可确保即使应用程序时钟设置得太高,您也始终可以获得正确的结果。
借助GPU Boost和K80 Autoboost提高性能的更多相关文章
- ASP.NET MVC之如何看待内置配置来提高性能优化(四)
前言 前几篇我们比较基础的讲了下MVC中的知识,这一节我们穿插点知识,讲讲MVC中我们可以提高性能的办法. Razor视图引擎优化(优化一) 我们知道默认情况下配置MVC去解析一个视图会首先约定通过查 ...
- CSS性能分析,如何优化CSS提高性能
不负十年后的自己,共勉! 前端性能优化一直是一个比较热门的话题,我们总是在尽我们最大的努力去,提高我们的页面性能,比如减少HTTP请求,利用工具对资源进行合并压缩,脚本置底,避免重复请求,css sp ...
- 对于大批量赋值功能,使用if判断是否能提高性能
场景: 如果对某变量进行赋值,是否需要判断一下,如果相等就不用赋值,这样会不会提高性能. 代码如下: "; "; , x2=, x3=; Stopwatch w = new Sto ...
- Java编程提高性能时需注意的地方
1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控制资 ...
- 使用C# yield关键字来提高性能和可读性
对于”yield”这个关键字我已经见过N次了,直到最近我才知道这个关键字所蕴含的力量.我将在下面展示出一些使用”yield”让你的代码有更高可读性和更好性能的例子. 为了让你对yield有一些快速概览 ...
- 使用WITH AS提高性能简化嵌套SQL(转载)
使用WITH AS提高性能简化嵌套SQL http://www.cnblogs.com/fygh/archive/2011/08/31/2160266.html
- Java 编程:如何提高性能?(简单总结篇)
开发者在编程中除了要有编程规范,还要注意性能,在 Java 编程中有什么提高性能的好办法呢? 本文转自国内 ITOM 行业领军企业 OneAPM Cloud Insight(一款能够优雅监控多种操作系 ...
- 05_Smart-image通过SoftReference提高性能
文章导读: 文件介绍了常见的图片下载开源插件smart-image, 由于移动设备硬件受限,因此Android的相关app都要考虑到性能的关系, 所以很多的第三方插件都使用到了缓存cache技术,本人 ...
- FMDB官方使用文档-GCD的使用-提高性能(翻译)
FMDB官方使用文档-GCD的使用-提高性能(翻译) 发布于:2013-08-19 10:01阅读数:13395 由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍.与此 ...
随机推荐
- ELKF-分布式日志收集分析平台搭建 最小化 配置过程 - 查看收集日志(windows10下搭建)
前言 Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的.这三个产品被设计成一个集成解决方案,称为“Elastic Stack” ...
- shell专题(八):read读取控制台输入
1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 ...
- selenium:selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
可用链接: 1.http://blog.csdn.net/heatdeath/article/details/71136174 2.https://www.cnblogs.com/yousuosiys ...
- Python并发编程04 /多线程、生产消费者模型、线程进程对比、线程的方法、线程join、守护线程、线程互斥锁
Python并发编程04 /多线程.生产消费者模型.线程进程对比.线程的方法.线程join.守护线程.线程互斥锁 目录 Python并发编程04 /多线程.生产消费者模型.线程进程对比.线程的方法.线 ...
- 微信小程序热更新,小程序提示版本更新,版本迭代,强制更新,微信小程序版本迭代
相信很多人在做小程序的时候都会有迭代每当版本迭代的时候之前老版本的一些方法或者显示就不够用了这就需要用到小程序的热更新.或者说是提示升级小程序版本 editionUpdate:function(){ ...
- Thymeleaf模板引擎学习
开发传统Java WEB项目时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用JSP页面进行页面渲染了.从而Thymeleaf提供了一个用于整合Spring MVC的可选模 ...
- 句柄Handle的释放(8)
本篇首先介绍几个与句柄分配与释放密切相关的类,然后重点介绍句柄的释放. 1.HandleArea.Area与Chunk 句柄都是在HandleArea中分配并存储的,类的定义如下: // Thread ...
- JAVA I/O基本操作
JAVA I/O基本操作 JAVA文件操作 JAVA字节流 JAVA字符流 JAVA缓存流 JAVA对象流 JAVA数据流 本文主要借鉴以下博客和网站: how2j.cn 深入理解java中的I/O ...
- C++ 优先队列priority_queue用法
头文件:#include<queue> 操作: top 访问队头 empty 队列是否为空 size 返回队列元素个数 push 插入元素到队尾 pop 弹出队头 swap 交换内容 定义 ...
- Qt-绘制图表
1 简介 使用Qt的charts模块来绘制图表,案例来自Qt自带的demo. charts模块简介:Qt Chars模块提供了一系列容易使用的图表组件.需要使用charts组件时,需要导入Qt Ch ...