MacBook外置显卡eGPU折腾笔记

硬件选购

当今市场上个人电脑的独立显卡,基本上能选的只有NVIDIA和AMD了,如果你想买外置显卡来打游戏的话,NVIDIA和AMD的都可以,但如果是像我一样准备用来做深度学习加速的,那最好还是选择NVIDIA了。

另外,如果要用来做深度学习加速,一定要查看英伟达官方网站,必须是支持CUDA的显卡才行,因为现在大多数的深度学习框架,底层都是调用GPU的CUDA编程接口。

不过大家也不用担心需要多么昂贵的显卡,GeForce GTX 9XX,GeForce GTX 10XX的显卡基本上都是支持的,具体购买之前去官方网站再核实一下即可。

因为本文的经验来自于MacBook Pro,所以,以下着重介绍MacBook Pro安装、配置外置显卡的一些信息。Windows下依然也可以使用外置显卡的,而且性能损失更少。

电脑

对比较新的笔记本而言,要配置外置显卡,最佳的途径非Thunderbolt接口(也称雷电接口)莫属,这个接口一共分3代,从2016年以后的苹果笔记本电脑,包括MacBook Pro、MacBook上面配置的,都是第三代的雷电接口,这个接口速度极快,因此提供了扩展显卡的可能性,接口的形状与USB 3.1的形状一样,现在很多PC笔记本也配备了这个接口,但一定要注意了,有些电脑上也有这个形状的接口,但并不是雷电3接口,而只是USB接口,如果想给PC笔记本扩展显卡,一定要看清楚了,雷电接口的旁边一般有一个闪电的标志。这三代雷电接口的传输速率、形状等信息,可以参考这个网站:https://egpu.io/setup-guide-external-graphics-card-mac/#tb3-enclosures。

2016年末和以后的MacBook Pro 15英寸(注意,只是15英寸哦)的笔记本更为牛X,雷电接口直接是与CPU相连的,能够获得最大的连接速度。以下是来自egpu.io的一张架构图:

本人使用的电脑是MacBook Pro 13英寸2017年中款,其他型号的可以相应借鉴,但如果型号太老,选购外置显卡时,就需要考虑是雷电2还是雷电3的接口了,或者购买雷电3转接雷电2的线。

外置显卡

如下是egpu.io列出的一些当前市面上可以购买的外置显卡/显卡盒:

注意:外置显卡通常由一个外置显卡盒与显卡两部分组成,显卡通常就是正常的台式机显卡,而外置显卡盒只是提供了显卡插槽,并提供了相应的接口与电脑连接。

大家可以点击The Beginner’s eGPU Setup Guide for Mac查看各个这些显卡的详细信息,有些只是一个显卡盒,而显卡需要单独购买。

另外,苹果最新的操作系统macOS High Sierra宣布支持外置显卡,但真正到可用的程度,预计要到2018年春季,所以,不想吃螃蟹的同学,可以再等等,苹果现在官方宣布支持的外置显卡是Sonnet Breakaway,在显卡的开发者套件里面,国内现在没有正式发售,另外,苹果的开发者套件里面,这个外置显卡配备的是AMD Radeon RX 580。

本人购买的是技嘉Aorus Gaming Box GTX1080,算是小小的冒险,因为这款显卡官方明确说只支持Windows系统,在买回来的最初几天里,遇到各种问题,曾一度非常失落,但最终也算是一一搞定了。

以下是我的MacBook Pro连接外置显卡的图:

这款外置显卡本身是为游戏玩家设计的,所以左侧还有一些彩灯,在Windows平台下,可以通过安装软件调整效果。

另外,这款外置显卡是mini版的,也就意味着跟正常大小的台式机显卡尺寸是不同的,目前我还不清楚能否用在台式机上。

NOTE:这款外置显卡非常小巧,还配备了一个包,具有很强的便携性,但如果将来打算把里面的显卡用在台式机上,估计会有点困难,建议有选购需求的同学不要像我一样。可以选购AKiTio Node这样的外置显卡盒,然后再单独选购桌面版的显卡,这样如果不想使用外置显卡了,直接换到台式机上即可。

安装

以下以macOS High Sierra系统下安装为例,虽然网上也有个别在macOS Sierra系统下安装成功的,但能找到的资料非常少,而且本人经过多次尝试,系统都无法识别显卡。

另外,使用BootCamp在Windows下安装估计也是很多人能想到的一个解决方案,但我购买的这款外置显卡这样安装依然不行,在Windows 10下,系统找到显卡后,开始安装驱动,然后重启,但系统一直停留在视窗图标那,并且图标还不断闪烁。经过多次尝试,均已失败告终,其中有一次,下方出现类似"installing driver, please wait"的提示,但等了大概1个小时依然如此,只能强制重启,而且即使把外置显卡拔了,Windows的视窗图标依然会闪烁,更诡异的是,重启到macOS系统下,依然会有一个幽灵般的蓝色视窗图标在屏幕中间闪烁,给人的感觉好像是把硬件搞坏了,这个问题,国外也有人遇到过,并且根据描述,这类问题,苹果的天才吧是解决不了的。我当时遇到这个问题心情也是极度郁闷的,最终只得使用TimeMachine恢复系统,不过如此折腾过几次,感觉好像耐心等待几个小时也会自然恢复,具体没有经过测试。

这个链接介绍了如何使用Bootcamp安装这款显卡:

https://egpu.io/bootcamp-setup-guide-tb3-macbook-pro/

注意,在苹果官方正式支持NVIDIA显卡之前,安装是有风险的,尤其是使用BootCamp在Windows下安装,请大家慎重操作,提前做好备份。

安装步骤

下面正式进入安装环节,插入外置显卡,然后依次完成如下步骤:

第一步,禁用SIP

重启macOS,在启动的过程中,按住Command - R,进入恢复模式,然后点击菜单栏中的实用工具,选择终端,然后在里面输入如下命令:

csrutil enable --without kext

或者

csrutil disable

然后重启系统,正常启动即可

第二步,安装驱动

可以使用egpu.io中提供的驱动(注意操作系统版本要匹配),或者使用如下命令安装:

curl -o ~/Desktop/automate-eGPU.sh https://raw.githubusercontent.com/goalque/automate-eGPU/master/automate-eGPU.sh && chmod +x ~/Desktop/automate-eGPU.sh && cd ~/Desktop && sudo ./automate-eGPU.sh

按照脚本的提示下载驱动、重启即可

查看安装情况

驱动安装完成后,会在系统右侧菜单条中多出一个图标,如下图所示:

可以查看系统偏好设置,以确认安装是有效的:

系统偏好设置

打开系统偏好设置,点击右下角的NVIDIA Driver Manager

如果出来的界面能看到自己的显卡,说明安装成功了,如下图所示:

关于热插拔

现在几乎只有苹果官方宣称支持的Sonnet Breakaway Radeon RX 580可以支持热插拔,其他的显卡最好还是使用系统菜单栏中的显卡切换按钮切换后再拔,我的外置显卡在macOS下拔出后,系统会死机,网上其他人也都反映过有这个问题。

小结

在macOS High Sierra下安装相对来说还是很容易的,大家也可以参考以下两篇文章,进行安装:

性能测试

既然外置显卡已经安装好了,怎么着也得测试一下性能,以下是使用GeekBench 4进行测试的结果,可以想见的结果是,外置显卡必然会有一些性能损失的,只是看损失多少的问题。

OpenCL性能测试

选择GTX 1080进行测试

测试结果

看完这个结果,我只想说,我真能浪费钱,花GTX 1080的钱,买到了比GTX 1060稍微好了一丢丢的性能

MacBook外置显卡eGPU折腾笔记的更多相关文章

  1. Ubuntu Gnome 14.04.2 lts 折腾笔记

    unity感觉不爽,于是来折腾gnome3 = = 首先去官网下载ubuntu gnome 14.04.2 lts的包(种子:http://cdimage.ubuntu.com/ubuntu-gnom ...

  2. Kali Linux 1.0 新手折腾笔记(2013.3.21更新)

    rootoorotor昨天折腾了 Kali Linux 1.0,把大概的配置过程记录下来,希望对想接触或使用Kali Linux的同学有所帮助. 请注意: 1.本文为面向新手的教程,没技术含量,没事瞎 ...

  3. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  4. ASP.NET Core 折腾笔记一

    前言: 在ASP.NET Core 1.0时,曾折腾过一次,后因发现不了System.Data而停止. 更因VS2015提示过期Delete掉VS了,其实主要还是笔记本的硬盘空间吃紧. 快双十一了,本 ...

  5. systemtap折腾笔记

    在这货上花费了不少时间,都是受了@agentzh 大神的蛊惑:) 他写的nginx-systemtap-toolkit监测的数据很有价值,对于系统优化实在是利器. 最早折腾systemtap,是在Ub ...

  6. 【转】Kali Linux 新手折腾笔记

    原作者:http://defcon.cn/1618.html 最近在折腾Kali Linux 顺便做一简单整理,至于安装就不再多扯了,估计会出现的问题上一篇文章<VMware虚拟机安装Kali ...

  7. Kali Linux 新手折腾笔记

    http://defcon.cn/1618.html 2014年09月29日 渗透测试 暂无评论 阅读 55,052 次   最近在折腾Kali Linux 顺便做一简单整理,至于安装就不再多扯了,估 ...

  8. Kivy折腾笔记

    最近想用Python开发APP,选择kivy,记录过程 首先是源码安装,各种蛋疼的报错放弃了.cython高版本有问题. python3 -m pip install cython==0.23 pyt ...

  9. Manjaro折腾笔记:我的数据科学环境搭建之路

    ss并且开机启动 0. 安装shadowsocks sudo pip install shadowsocks 1. 建立配置文件ss.json 我的位置是:/home/ray/Documents/sh ...

随机推荐

  1. SEO(搜索引擎优化)

    高级搜索指令 搜索命令中的字符均为英文 用户除了可以通过搜索引擎搜索普通的查询词外,还可以使用一些特殊的高级搜索指令.这些指令普通用户很少会用到,但是对于SEO人员进行竞争对手研究和寻找外部链接资源却 ...

  2. 几篇QEMU/KVM代码分析文章

    QEMU/KVM结合起来分析的几篇文章,代码跟最新的版本有些差异,但大体逻辑一样,写得通俗易懂.我把链接放这里主要是为自己需要查看时调转过去方便,感谢作者的付出! QEMU Source Code S ...

  3. MySQL 创始人:写代码比打游戏爽,程序员应多泡开源社区

     王练 发布于2017年09月04日 收藏 43   开源中国全球专享福利,云栖大会购票大返现!>>>   根据StackOverflow的最新调查,MySQL仍然是全世界最流行的数 ...

  4. html的dtd声明

    其实DOCTYPE声明,因为很多时候团队里没有做规范应该用哪个,而且几种不同的编辑工具新建出的html页面标准也不同:这就可能一个jsp页面写了几百行甚至上千行了,然后发现某个样式必须要改DOCTYP ...

  5. if __name__

     我们经常在python 程序中看到 if __name__ == '__main__' :这代表什么意思?    python中 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模 ...

  6. Net Core环境开发与调试

    NET Core 包括.NET Core Runtime 和 .NET Core SDK: .NET Core = 应用运行依赖的 .NET Core Runtime .NET Core SDK = ...

  7. ReentrantLock和Synchronized

    1 synchronized 1.1 一旦没有获取到就只能一直等待 A和B都获取同一个对象锁,如果A获取了,B没有获取到,那么在A释放该锁之前,B只能无穷等待下去. 1.2 synchronized是 ...

  8. c/c++预处理命令#pragma

    1 #pragma pack(push, 1)和#pragma pack(pop) #pragma pack用于指定数据在内存中的对齐方式.如果不指定对齐方式的话,默认为自然对齐. 1.1 #prag ...

  9. inode ls -li 显示索引节点

    ls -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --a ...

  10. UIView封装动画--iOS 利用系统提供方法来做弹性运动

    iOS 利用系统提供方法来做弹性运动 /*创建弹性动画 damping:阻尼,范围0-1,阻尼越接近于0,弹性效果越明显 velocity:弹性复位的速度 */ [UIView animateWith ...