当前位置: 首页 > news >正文

易营宝网站建设wordpress kswapd0

易营宝网站建设,wordpress kswapd0,网站域名使用怎么做待摊分录,软件开发平台问题:GPU显卡提高后,代码总体运行效率没有提高 原先显卡NIVIDA T400换成NVIDIA RTX A4000,CUDA核心(物理GPU线程单位)从三百多提升到了六千多,但是程序总体运行的时间没有变化。 原因分析 显卡没用上或者…

问题:GPU显卡提高后,代码总体运行效率没有提高

原先显卡NIVIDA T400换成NVIDIA RTX A4000,CUDA核心(物理GPU线程单位)从三百多提升到了六千多,但是程序总体运行的时间没有变化。

原因分析

  1. 显卡没用上或者没有配置好,实际上还是用CPU在跑。
  2. GPU跑了,但是GPU和CPU并行效率没有对齐。

检查是否有用上GPU

任务管理器

在任务管理器中看程序运行后CUDA调用GPU的情况。
在这里插入图片描述

nvidia-smi

打开cmd命令行输入nvidia-smi即可查看NVIDIA GPU使用状况。
在这里插入图片描述

NIVIDA性能分析工具nvprof、nvvp和Nsight Systems

前面任务管理器都只能看某些时刻电脑整体GPU占用情况,但接下来介绍的三个性能分析工具能够显示程序很详细的GPU、CPU使用情况,甚至能精确到某个函数。

在Windows机器环境下,在安装好CUDA Toolkit后则自带了nvprof / nvvp等工具。nvprof / nvvp等工具能够计算GPU和CPU使用情况,以此来实现对程序的性能分析。

两者区别:nvprof是命令行测试CUDA程序,nvvp则是带有界面的测试CUDA程序。

对于CUDA版本比较低的,可以使用nvprof / nvvp工具做性能测试,但是版本高了之后,就会报错。

在这里插入图片描述
原因在于官方把更高版本的cuda从nvprof和nvvp迁移到了Nsight Systems。

上述工具可能会遇到的问题:

  • nvprof报错:找不到cupti64_2021.2.0.dll,无法继续执行代码…
    方法:路径NVIDIA GPU Computing Toolkit\CUDA\v11.4\extras\CUPTI\lib64下面找到cupti64_2021.2.0.dll,复制到NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin中。
  • nvvp报错:An error has occurred.See the log file…
    在这里插入图片描述
    方法:原因是电脑没有安装JDK8,去网上搜索一下JDK8然后安装就行。
  • nvvp使用:打开后,进行create new session,File选择你要进行测性能的可执行文件(exe),一般VS程序Debug文件夹下会有程序对应可执行的exe。

代码断点

在CUDA选中显卡信息和分配GPU内存部分打断点或者输出一下信息,看看显卡信息是否正确以及内存是否有正确分配。

// 查看选中GPU的信息
cudaDeviceProp prop;
cudaSetDevice(device_id);// 选中编号为device_id的GPU设备
cudaGetDeviceProperties(&prop, device_id);// 获取device_id的GPU设备信息,可以在这里打个断点看看选中的GPU信息是否正确// 分配GPU内存
status = cudaMalloc((void**) &data, sizeof(int)*n);// 为data分配长度为n的int类型GPU内存,查看status是否为success判断是否使用了GPU

检查GPU和CPU并行效率是否对齐

通过在代码设置时间戳,来记录CPU和GPU运行的时间,来判断是否达成并行的条件。

举例子:一个程序需要完成获取、处理、输出数据的工作,处理数据的部分可以交给GPU完成,其余交给CPU,GPU和CPU之间能够并行工作。如果CPU获取数据的时间>GPU处理数据的时间,那么GPU处理的速度再快,整体的运行时间也不会有多少改变,因为GPU每次处理完数据都要先等CPU获取完数据。但是,如果CPU获取数据的时间<GPU处理数据的时间,那么GPU处理的速度提高就会降低整体运行时间。最理想的情况就是两个时间相等,CPU获取到数据的时候GPU刚好处理完上一个数据,这样两者的性能都不会有冗余。

GPU显卡提高后,代码总体运行效率没有提高,可能原因就是“CPU获取数据的时间>GPU处理数据的时间”。

C++通过时间戳GetTickCount()获取运行时间,来计算GPU和CPU部分代码的时间,来判断是否有上述情况:

#include<iostream> 
#include<windows.h>
int main(){DWORD start_time=GetTickCount();{//此处为被测试代码}DWORD end_time=GetTickCount();cout<<"The run time is:"<<(end_time-start_time)<<"ms!"<<endl;//输出运行时间return 0;
}
http://www.yayakq.cn/news/206447/

相关文章:

  • 省建设厅网站建筑材料备案申请免费的网站搭建
  • tag做的最好的网站南沙企业网站建设
  • 网站审核备案 几天wordpress固定链接规则文件夹
  • 做专利费减是哪个网站源代码网站怎么建设
  • php5mysql网站开发实例精讲学动漫制作去哪个学校
  • 婚恋网站如何做推广网站未建设的情况说明书
  • 电子商务网站建设的实训报告百度联盟怎么做网站加入
  • 百度商桥接入网站网页设计需要学什么书
  • 网站群建设公司绍兴建站模板厂家
  • 视频解析网站是怎么做的嘉兴网站建设哪家做得好
  • 四川网站建设外包业务长沙旅游攻略景点必去
  • 服装网站建设优点与缺点创建集团上海公司网站
  • 深圳网站建设-中国互联免费网站建设app
  • 做免费网站需要营业执照吗大连地图
  • 东圃手机网站建设电话介绍营销的网站
  • 合肥网站建设 一浪怎么做网站页面免费的
  • 小程序制作模板网站成都企业网站建设公司
  • 网站关键词怎样优化凡科登陆网站手机版
  • 模板网站对排名的影响大气的网络公司名字
  • 如何搭建静态网站微信公众号平台怎么开发
  • 如何在网站做电子杂志中国工商注册营业执照的官网
  • 大型flash网站深圳工程项目
  • 营销网站建站企业网站的困难
  • 西安网站制作工商湖南省建设工程造价管理站网站
  • 建设一个公司网站要具备什么个人网站 主机
  • 西安的网站建设电子商务网站建设程序应用题
  • 专业网站建设的公司排名南昌专业网站建设首页排名
  • 专业定制衣服网站排名优化的技巧
  • 网站如何添加关键词大同泰瑞集团建设有限公司网站
  • 找大连做企业网站的公司wordpress 亲子主题