硬件配置:

机型:机械革命s1,2018年

CPU:i7-8550U

GPU:Nvidia Geforce MX150(满血版),2G显存

内存:单条16g (自己更换的)

软件信息:

CUDA:v10.2.89

Display Driver:441.66

1. 引言

最近做机器学习,想测试一下自己的顶配轻薄本上的MX150独显,相比cpu和集显来讲,到底能有多少提速。因此就有了这次测试。

2. cuda的安装

按照官网guidance走,十分顺利。由于不是本文的重点,就简单讲下。

Guidance有2个:一个是 Quick Start Guide,另一个是 Cuda Installation Guide for Windows

安装步骤第一步:更新显卡驱动 为441.66;第二步:安装 Microsoft Visual Studio 2019,Community版本即可,安装时记得勾选C++组件,cuda程序编译时会用到,需要大概7GB硬盘空间;第三步:安装 cuda10.2,显卡驱动已经更新过了记得选自定义安装,然后untick显卡驱动Display Driver,还有Geforce Experience也不是必须的那个是打游戏用的,也可以untick。

不过在做之前要注意一下cuda版本和Display Driver版本,以及MSVC的对应关系:Cuda Toolkit Release Notes,根据自己要装的cuda版本,去选择显卡驱动的版本。

3. 性能测试

3.0 理论值

搜索Google可以查到,

i7-8550u自带的集显UHD 620理论算力应该在 430 GFlops 左右,

而Geforce MX150的理论算力应该在 1,177 GFlops 左右,

因此独显比集显的理论倍数大约应为2.7倍左右,

下面进行测试。

3.1 pycuda性能测试

这里的测试用例来自这位csdn的朋友的文章:pycuda 之 安装与简单使用,基本就是两个长向量加加减减再求内积,N为原始向量长度。

注:这里碰到一个bug:

nvcc fatal : Cannot find compiler 'cl.exe' in PATH

错误原因是C++编译器cl.exe不在系统环境变量里,解决方法是把带有cl.exe编译器的目录,放进PATH中,然后重启计算机即可。

这里根据我的VS 2019版本,添加的路径为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\Hostx64\x64

测试结果:

------------1---------------
N = 10485760
gpu run time 0.064494 seconds
cpu run time 0.144696 seconds
-0.0014648438 0.001953125
------------2---------------
N = 20971520
gpu run time 0.125063 seconds
cpu run time 0.302542 seconds
-0.0014648438 0.0014648438
------------3---------------
N = 31457280
gpu run time 0.187235 seconds
cpu run time 0.439143 seconds
-0.0014648438 0.0014648438
------------4---------------
N = 41943040
gpu run time 0.250251 seconds
cpu run time 0.567680 seconds
-0.0014648438 0.0014648438
------------5---------------
N = 52428800
gpu run time 0.311149 seconds
cpu run time 0.697281 seconds
-0.0014648438 0.0014648438
------------6---------------
N = 62914560
gpu run time 0.375471 seconds
cpu run time 0.857080 seconds
-0.0014648438 0.0014648438
------------7---------------
N = 73400320
gpu run time 0.434704 seconds
cpu run time 1.031650 seconds
-0.0014648438 0.0014648438
------------8---------------
N = 83886080
gpu run time 0.844024 seconds
cpu run time 1.146626 seconds
-0.0014648438 0.0014648438
------------9---------------
N = 94371840
gpu run time 1.228094 seconds
cpu run time 1.327372 seconds
-0.0014648438 0.0014648438

然后往后跳过了一些:

------------15---------------
N = 157286400
gpu run time 0.938998 seconds
cpu run time 2.088095 seconds
-0.0014648438 0.0014648438
------------16---------------
N = 167772160
gpu run time 1.682067 seconds
cpu run time 2.222236 seconds
-0.0014648438 0.0014648438
------------17---------------
N = 178257920
gpu run time 1.728806 seconds
cpu run time 2.381657 seconds
-0.0014648438 0.0014648438

直接跳到20:

------------20---------------
N = 209715200
gpu run time 1.238891 seconds
cpu run time 3.056840 seconds
-0.0014648438 0.0014648438

21就OOM了:pycuda._driver.MemoryError: cuMemAlloc failed: out of memory

可以看到在pycuda的测试用例中,GPU的速度基本上在CPU的1.5-2.7倍左右,偶尔不稳定。

3.2 xgboost性能测试

xgboost的测试用例来自xgboost官方github:https://github.com/dmlc/xgboost/tree/master/tests/benchmark 中的benchmark_tree.py,用hist方法对750000×50的随机矩阵进行500次的迭代查找分割点。

测试结果:

hist 118.29 s
gpu_hist 48.70 s

可以看到在xgboost的测试用例中,GPU的速度大概是CPU的2.5倍左右,基本符合理论值。

注:关于如何查看是否成功开启CUDA GPU加速,我这边踩了个坑,记录了下来,具体可以查看我的另一篇文章:

XGBoost源码编译教程,以及编译后.dll文件下载

4. 总结

虽然笔记本很破,但cuda还是可以玩的!折腾至上!

通过此次测试,一方面熟悉了windows上cuda环境的部署,另一方面也对显卡的计算力有了一个更直观的了解,比如通过TechPowerUp提供的相对性能表,就可以很容易的推算出与各大主流显卡的性能差距,进而选择合适的升级方案了。

另:MX150这块卡应该算是主流的顶配轻薄游戏本上的常见配置了(MX150市面上有2款,一款满血版25w的,另一款10w续航版,后者性能很差,机械革命s1的是前者),这里我根据相对性能列了一张表,大家可以参考一下:

显卡算力对比(MX150为基准)
i7-8550u (with UHD 620) 0.37
MX150 1倍
1050 1.9

1060

3.78
1070 5.1
1080 6
1080Ti 7.65
2060 6
2070 7
2080 8.22
2080Ti 9.62
Tesla M60 3.38
Tesla P4 3.85
Tesla P40 7.90

Tesla P100-PCIe-16GB

(Kaggle Kernel配置)

6.42
Tesla K40 3.38
Tesla K80 (Colab旧配置) (无数据,理论上是2块K40的叠加: 6.76)
Tesla T4 (Colab新配置) 7
Tesla v100 (Baidu AI Studio配置) 10.57

(实际性能不一定同理论一样,有文章就反映说Colab的T4比他本地的1080Ti慢了将近2倍,所以仅供参考,实际性能还要和环境,CPU,内存等挂钩)

5. Colab, Kaggle, Baidu AI Studio 上 GPU Kernel性能大对比

基于Xgboost的基准测试:

Colab hist (with CPU Kernel) 183.20 s
Colab hist (with GPU Kernel) 137.50 s
Colab gpu_hist (with GPU Kernel Tesla P4) 14.54 s
Kaggle hist (with CPU Kernel) 109.93 s
Kaggle gpu_hist (with GPU Kernel Tesla P100) 7.09 s
Baidu AI Studio gpu_hist (with GPU Kernel Tesla V100) 4.09 s

笔记本电脑安装cuda10.2并使用pycuda、xgboost测试GPU计算效率(附Colab, Kaggle, BaiduAIStudio性能测试对比)相关推荐

  1. deepin10.15安装cuda10.1.168 cudnn7.6.1 tensorflow_gpu1.4.0

    deepin10.15安装cuda10.1.168 cudnn7.6.1 tensorflow_gpu1.4.0 最近入坑deepin操作系统,基于debian9,和Ubuntu具有一样的操作习惯,由 ...

  2. 如何在Ubuntu18.04下安装CUDA10.1和cudnn

    CUDA10.1的版本比较新了,网上的一些教程不再适用.还有网上的部分介绍过于复杂,这里结合自己实际安装经验.介绍一个我的实现思路. 额外说一句gcc的事情,现在的版本gcc到了7.4,安装CUDA1 ...

  3. Windows 10安装CUDA10.1+cudnn7.6.0+Pytorch1.3.0

    首先要明确gpu是哪个显卡并且已安装的显卡驱动或者将要安装哪个版本,nVidia官网https://www.nvidia.com/Download/index.aspx, 1. 安装CUDA10.1 ...

  4. linux卸载cuda10.0,Ubuntu下安装CUDA10.0以及问题

    tensorflow版本与cuda和cudnn的对应关系: 安装一定要查看CUDA要求的linux下的Driver Version,链接网址如下: 在附加驱动中有本机所用的显卡驱动. 提示Incomp ...

  5. 华硕笔记本装linux系统教程视频,在新买的华硕笔记本电脑安装linux手记

    在新买的华硕笔记本电脑安装linux手记 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 在新买的华硕 I3 笔记本电脑安装 lin ...

  6. linux终端安装cuda,Ubuntu下安装CUDA10.0以及问题

    tensorflow版本与cuda和cudnn的对应关系:https://tensorflow.google.cn/install/source 安装一定要查看CUDA要求的linux下的Driver ...

  7. 【转】Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)

    转自:Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) - Hongkai_Ding - 博客园 0. 前言 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUD ...

  8. Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)

    Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) 参考文章: (1)Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) (2)https://www.cn ...

  9. Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5

    Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5 前言 深度学习需要使用使用GPU加速,在安装tensorflow之前需要根据选用的版本安装 就我的经验而言,CUDA的安装在Lin ...

最新文章

  1. 塞尔达amiibo_塞尔达荒野之息pC版(附带全Amiibo)安装教程,最无敌的游戏
  2. shell中#*,##*,#*,##*,% *,%% *的含义及用法
  3. 使用百度UEditor
  4. 就业阶段-java语言进价_day04
  5. idea 使用时的一些问题
  6. tomcat报错无法启动组件_微软正在修复Windows Server无法启动的0xc0000001报错故障
  7. 第006讲 多媒体页面 标签汇总
  8. python导出百万数据到excel_Python 批量插入100万级数据到Excel文件(简洁版)
  9. 社会工程学之《反欺骗的艺术》小结(二)
  10. 基于VM10+Win7安装Mac OSX10.11 El Capitan
  11. 开启灯光就是近光吗_自动大灯会自动调远近光吗
  12. 记MySQL表空间碎片清理过程
  13. ncnn发布20220420版本,让Vulkan神经网络推理得更快
  14. 虚拟机查看HWADDR(即MAC)地址
  15. html span自动换行,span标签里的内容过长如何设置自动换行
  16. java校验特殊字符_java 中文及特殊字符校验
  17. java一只母牛 一年生头小牛_Java实现:工厂有一头母牛,一年生一头小母牛,小母牛五年后可以生小牛,问20年工厂有多少头牛?...
  18. 基于中点算法和Bresenham算法绘制椭圆
  19. BDB(C) Getting Started - Introduction to Berkeley DB
  20. git push 出现 The current branch dev has no upstream branch.的问题

热门文章

  1. 获取本地ipv4和ipv6信息
  2. 模拟信号隔离放大器变送器 导轨安装DIN11 IPO EM系列
  3. 常见Linux、ROS命令
  4. FastReport Online Designer中文教程:数据处理
  5. 喜欢奉承的人,往往能力配不上“人脉” | 架构师之路读书会(第四期)
  6. AI创作——disco diffusion入门使用
  7. MySQL之DISTINCT的用法
  8. Android 蓝牙开发(九)A2DP基本功能
  9. 玛瑙象棋有什么好处_清理your玛瑙
  10. 磐河数据php代码,国内机票_API数据接口_免费数据调用 - 磐河数据用户中心