笔记本电脑安装cuda10.2并使用pycuda、xgboost测试GPU计算效率(附Colab, Kaggle, BaiduAIStudio性能测试对比)
硬件配置:
机型:机械革命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的是前者),这里我根据相对性能列了一张表,大家可以参考一下:
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性能测试对比)相关推荐
- 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具有一样的操作习惯,由 ...
- 如何在Ubuntu18.04下安装CUDA10.1和cudnn
CUDA10.1的版本比较新了,网上的一些教程不再适用.还有网上的部分介绍过于复杂,这里结合自己实际安装经验.介绍一个我的实现思路. 额外说一句gcc的事情,现在的版本gcc到了7.4,安装CUDA1 ...
- Windows 10安装CUDA10.1+cudnn7.6.0+Pytorch1.3.0
首先要明确gpu是哪个显卡并且已安装的显卡驱动或者将要安装哪个版本,nVidia官网https://www.nvidia.com/Download/index.aspx, 1. 安装CUDA10.1 ...
- linux卸载cuda10.0,Ubuntu下安装CUDA10.0以及问题
tensorflow版本与cuda和cudnn的对应关系: 安装一定要查看CUDA要求的linux下的Driver Version,链接网址如下: 在附加驱动中有本机所用的显卡驱动. 提示Incomp ...
- 华硕笔记本装linux系统教程视频,在新买的华硕笔记本电脑安装linux手记
在新买的华硕笔记本电脑安装linux手记 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 在新买的华硕 I3 笔记本电脑安装 lin ...
- linux终端安装cuda,Ubuntu下安装CUDA10.0以及问题
tensorflow版本与cuda和cudnn的对应关系:https://tensorflow.google.cn/install/source 安装一定要查看CUDA要求的linux下的Driver ...
- 【转】Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
转自:Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) - Hongkai_Ding - 博客园 0. 前言 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUD ...
- Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) 参考文章: (1)Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) (2)https://www.cn ...
- Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5
Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5 前言 深度学习需要使用使用GPU加速,在安装tensorflow之前需要根据选用的版本安装 就我的经验而言,CUDA的安装在Lin ...
最新文章
- 塞尔达amiibo_塞尔达荒野之息pC版(附带全Amiibo)安装教程,最无敌的游戏
- shell中#*,##*,#*,##*,% *,%% *的含义及用法
- 使用百度UEditor
- 就业阶段-java语言进价_day04
- idea 使用时的一些问题
- tomcat报错无法启动组件_微软正在修复Windows Server无法启动的0xc0000001报错故障
- 第006讲 多媒体页面 标签汇总
- python导出百万数据到excel_Python 批量插入100万级数据到Excel文件(简洁版)
- 社会工程学之《反欺骗的艺术》小结(二)
- 基于VM10+Win7安装Mac OSX10.11 El Capitan
- 开启灯光就是近光吗_自动大灯会自动调远近光吗
- 记MySQL表空间碎片清理过程
- ncnn发布20220420版本,让Vulkan神经网络推理得更快
- 虚拟机查看HWADDR(即MAC)地址
- html span自动换行,span标签里的内容过长如何设置自动换行
- java校验特殊字符_java 中文及特殊字符校验
- java一只母牛 一年生头小牛_Java实现:工厂有一头母牛,一年生一头小母牛,小母牛五年后可以生小牛,问20年工厂有多少头牛?...
- 基于中点算法和Bresenham算法绘制椭圆
- BDB(C) Getting Started - Introduction to Berkeley DB
- git push 出现 The current branch dev has no upstream branch.的问题
热门文章
- 获取本地ipv4和ipv6信息
- 模拟信号隔离放大器变送器 导轨安装DIN11 IPO EM系列
- 常见Linux、ROS命令
- FastReport Online Designer中文教程:数据处理
- 喜欢奉承的人,往往能力配不上“人脉” | 架构师之路读书会(第四期)
- AI创作——disco diffusion入门使用
- MySQL之DISTINCT的用法
- Android 蓝牙开发(九)A2DP基本功能
- 玛瑙象棋有什么好处_清理your玛瑙
- 磐河数据php代码,国内机票_API数据接口_免费数据调用 - 磐河数据用户中心