- eGPU для Mac. Что это, и есть ли ему практическое применение?
- Что такое eGPU?
- Зачем это нужно?
- Есть ли минусы?
- Что еще нужно знать?
- Egpu mac os automated
- [SCRIPT] automate-eGPU.sh v1.0.1 — macOS eGPU installation tool
- [SCRIPT] automate-eGPU.sh v1.0.1 — macOS eGPU installation tool
- General instructions (OS X 10.9.5 — macOS 10.12.* )
- The procedure for AMD cards goes as follows (macOS 10.12.2 or newer):
- This script is not applicable to High Sierra.
- Apple announced official support for AMD external graphics, starting from macOS 10.13. IOPCITunnelCompatible keys are now built-in [RX 480 / RX 580]. Thank you!
- Supported GPUs
- Unsupported Macs
- Command-line options
- An alternative approach, including support for 5K iMac
- Changelog
- Background
eGPU для Mac. Что это, и есть ли ему практическое применение?
В недавнем релизе macOS 10.13.4 Apple привнесла полноценную поддержку внешних графических процессоров (eGPU). Сегодня мы подробно разберем, для чего это нужно, и как это может помочь в работе.
Что такое eGPU?
Как следует из названия, это док-станция с внешней видеокартой, которая подключается через быстрый интерфейс Thunderbolt 3. Разумеется, бокс идет в комплекте с блоком питания, который и обеспечивают необходимую мощность. Видеокарта обычно в комплект не входит, и её нужно докупать отдельно. Само собой, перед покупкой графического адаптера необходимо проверить совместимость на сайте производителя бокса.
Хоть такой тип адаптеров существует уже давно, возможности старых интерфейсов (таких как USB и FireWire) не позволяли раскрыть видеокарту на полную мощь, из-за чего смысла в подобных решениях попросту не было. Но с приходом Thunderbolt 3 всё изменилось – благодаря превосходной скорости в 40 Гбит/с.
Зачем это нужно?
По заявлениям Apple, внешние видеокарты позволяют серьёзно улучшить производительность в приложениях, которые используют Metal, OpenGL и OpenCL. Помимо всего прочего будет возможность подключить дополнительные мониторы, обходя ограничение встроенных видеокарт.
Огромное преимущество использования eGPU заключается и в том, что вы можете использовать эти мощности на любом Mac с Thunderbolt 3. Это означает, что вы можете превратить в мощную рабочую станцию даже MacBook Pro. При условии топового решения такие задачи, как монтаж видео в 4К, работа с 3D графикой и VR, и даже новейшие игры – больше не будут проблемой. А по окончании работы будет достаточно просто отключить адаптер и снова получить мобильное решение.
Есть ли минусы?
В некоторых случаях производительность eGPU может ограничиваться процессором. Кроме того, не все приложения могут поддерживать подобное ускорение.
Что еще нужно знать?
Ранее Apple официально не поддерживала такие решения, и поддержка осуществлялась исключительно производителями док-станций – соответственно, были проблемы с подключением и драйверами. Теперь, с приходом 10.13.4 мы можем быть уверены в стабильной работе подобных адаптеров. К сожалению, Apple по какой-то причине отказалась от поддержки видеокарт производства NVIDIA. На веб-сайте Apple можно увидеть список рекомендуемых боксов для конкретных видеокарт:
Для графических адаптеров AMD Radeon RX 570, RX 580, и Radeon Pro WX 7100:
- OWC Mercury Helios FX3
- PowerColor Devil Box
- Sapphire Gear Box
- Sonnet eGFX Breakaway Box 350W
- Sonnet eGFX Breakaway Box 550W
- Sonnet eGFX Breakaway Box 650W
Для графических адаптеров AMD Radeon RX Vega 56:
- OWC Mercury Helios FX3
- PowerColor Devil Box
- Sonnet eGFX Breakaway Box 550W
- Sonnet eGFX Breakaway Box 650W
Для графических адаптеров AMD Radeon RX Vega 64, Vega Frontier Edition Air, Radeon Pro WX 9100:
Sonnet eGFX Breakaway Box 650W
Apple рекомендует подключать бокс непосредственно в разъем USB-C, избегая использования переходников. К сожалению, компьютеры Mac с интерфейсом Thunderbolt первого и второго поколения не получили поддержку eGPU из-за недостаточной скорости передачи данных.
Как вы считаете, стоит ли пользоваться подобным решением? Если нет, то почему?
Источник
Egpu mac os automated
Why did I remove the links to T|I?
Why my name was changed to euqlaog?
No idea why I and other long term T|I users were banned.
Where is Nando4?
General instructions (OS X 10.9.5 – macOS 10.12.* )
This script is not applicable to High Sierra. I’ve ceased development of this script.
Please do not release anything under the MIT license (v0.9.8), it would be VOID under the Apple’s SLA.
This script automates Nvidia and AMD eGPU setup on OS X.
|
The script can be executed by two OS X Terminal commands:
-a | Switch on automatic mode |
-m | Switch off automatic mode (default) |
-url | Install Nvidia driver pkg from any valid web address |
-clpeak | OpenCL performance test (http://github.com/krrishnarraj/clpeak) |
-skip-web-driver | Skip Nvidia Web driver installation (for Kepler cards) |
-skip-agdc | Skip AddBoardId() function |
-uninstall | Restore original kexts, unload services and delete application support files |
The manual [-m] mode does only the minimum initialization in order to use the eGPU.
The advanced [-a] mode aims to configure everything automatically in the background, so that user can continue working after OS X updates immediately. Resolves the boot screen freezing issue with multi-slot enclosures & dGPU equipped Macs, and is beneficial with the nMP, allowing to use any TB port for booting without issues. It’s likely that you can now run more than one Nvidia Kepler eGPUs externally out of the box with any TB2 Mac, without manual delay. You can switch the mode at any time. Confirmed to work with subsequent OS X 10.11 El Capitan Developer builds (you have to disable System Integrity Protection). The script detects if you have turned it on/off.
OS X 10.11 brings Metal to Mac. I wrote a piece of code to determine if your eGPU supports Metal API. Just follow these steps:
Thanks to jrprice’s NBody-Metal app, a GTX 980 runs 65536 bodies nearly 30 FPS on retina display. Approximately 7 times faster than Iris Pro. A simulation of 32768 bodies achieves 60 FPS. https://github.com/jrprice/NBody-Metal
What’s new in 1.0.1
- Added support for AMD Baffin in 10.12.4
What’s new in 1.0.0
- A new method for rebuilding cache files
- AMD Polaris and Fiji support (limited CUs)
- -skip-agdc option
- -skipdriver renamed to -skip-web-driver
- Removed secondary data scraping methods
Version 1.0.0 is released with new licensing:
What’s new in 0.9.9
Native support (experimental) for R9 Nano and RX 480 with a Baffin personality (just remember to turn on -a mode).
Nvidia web driver support (experimental) for macOS Sierra beta builds
What’s new in 0.9.8
- Support for OS X Mavericks 10.9.5 and Kepler cards
- Added board-ids for iMac15,1 and iMac17,1
- Fixed issue #8 https://github.com/goalque/automate-eGPU/issues/8
- Fixed issue #9 https://github.com/goalque/automate-eGPU/issues/9 (thanks keymone)
- Fixed issue #13 https://github.com/goalque/automate-eGPU/issues/13
What’s new in 0.9.7
- SetIOPCIMatch() function which sets and appends device IDs (both the AMD and Nvidia)
- Automatic NVIDIA Driver Manager uninstalling
- Minor bug fixes
What’s new in 0.9.6
- Support for 2015 Macs (-a mode is required for successful booting with a multi-slot enclosure)
- Prepared for Fiji architecture
- Detects dGPUs for determining the correct [-a] mode behaviour
- Fixed issue #3 https://github.com/goalque/automate-eGPU/issues/3
- Fixed issue #4 https://github.com/goalque/automate-eGPU/issues/4
- Checks for the existence of application support path and if the script is ran as root
- Support for OS X El Capitan 10.11 GM
When the [-a] mode is turned on, Nvidia eGPU connected to nMP Bus 0 (port 5 or 6) works, but Thunderbolt Bus 1 or 2 (ports 1-4) require one additional restart and shut down without eGPU.
R9 390:
Thanks to Netstor for testing NA211TB, especially with the Late 2013 Mac Pro.
Источник
[SCRIPT] automate-eGPU.sh v1.0.1 — macOS eGPU installation tool
@goalque I will try again next week with a 980Ti — I believe you confirmed that to work with the nMP?
Will this work with multiple eGPUs. I have two Titan Zs. They used to work perfectly with the 0.9.9 script and El Capitan. Each Titan Z is plugged into a Akitio thunderbolt card.
To do : Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.
@nickmilitello Curious as to what you’re using with the Titan Z’s. a 2013 Mac Pro?
and to answer my own question, so far no luck with 2 Titan Z on nMP. Boots fine with the single card plugged in. Hangs on boot with second card. tried different ports, etc. Any thoughts?
Also separately, has anyone tried it with FCPX 10.3. I get a crash when a single Z is plugged in every time. Didn’t happen in previous version and only happen on nMP. MacBook Pro with eGPU and FCPX 10.3 everything is fine. Just nMP.
Here is the error.
[FFHGRendererInfo initWithLocation:] CGLSetVirtualScreen failed — didn’t expect to get here. Investigate why this code ran: [FFHGRendererInfo initWithLocation:] CGLSetVirtualScreen failed: loc=2, ctxt=0x7f7f97d0b800, err=10008
To do : Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.
I’ve been struggling with the nMP too — tried to get a Titan X running — no joy. What was your process for getting a single card working? Please can you share — possibly in another thread?
@nickmilitello: Have we discussed before?
EDIT: I think you are the same guy:
I am glad that you found egpu.io forum
At the times of El Capitan (or Yosemite), the nMP was able to run max 3 Kepler GPUs plus one Maxwell via an Amfeltec splitter by automate-eGPU.sh script. As I am not a nMP owner, can only say what I’ve been told. I don’t know the current situation in Sierra, but it should work with one eGPU at least. If not, the UEFI ROM of the GPU is not Mac friendly. Avoid XFX brand. Reference cards from Gigabyte and EVGA are often compatible.
You must disconnect all other devices to free up resources for multiple eGPU use. My script possibly enables Bus 1 and Bus 2 (4 upper ports) for eGPU use when the -a mode is turned on, but it’s recommended to use Bus 0.
Yep same guy. And really happy you are on this forum. And huge thanks for all the help previously and all the hard work you did to create and continue to help with this script.
On El Capitan I was able to successfully run 2 Titan Z giving a total 6 GPUs. 2 D700 and 4 Titan GPUS. I did have them connected to Bus 0.
On Sierra I tried splitting them into Bus 1 and 0 with no luck. I originally had the Amfeltec splitter but going from thunderbolt Akitio to Amfeltec pci card to Amfeltec board caused Cinema 4d to crash often. So I split it with two Akitio boards each separately going into Bus 0. (2 thunderbolt cables into the Mac). That worked well on El Capitan. However Sierra has made the both Akitio devices not able to boot. Single works fine. Except for the FCPX thing. Used -a mode and disconnect all other devices except the monitor.
To do : Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.
Источник
[SCRIPT] automate-eGPU.sh v1.0.1 — macOS eGPU installation tool
General instructions (OS X 10.9.5 — macOS 10.12.* )
1) Disable SIP (introduced in OS X El Capitan 10.11). As derived from here:
Your system is not less safe SIP disabled than it was on OS X 10.10. However, if you want more protection, you can try:
which requests an unsupported configuration, allowing unsigned kexts.
2) Download & run the script. Here’s https://www.youtube.com/embed/MeOqTzGcgPI?start=70&end=152 if you need them.
3) R estart the Mac
4) Set the eGPU display/ghost display as the primary as shown at 0:22 in this video
The procedure for AMD cards goes as follows (macOS 10.12.2 or newer):
This script is not applicable to High Sierra.
Apple announced official support for AMD external graphics, starting from macOS 10.13. IOPCITunnelCompatible keys are now built-in [RX 480 / RX 580]. Thank you!
1) Hot plug the eGPU and run: sudo ./automate-eGPU.sh
3) Disconnect eGPU
4) Boot into macOS, hot plug, rerun: sudo ./automate-eGPU.sh
5) If your Mac is newer than Late 2014, you might have to turn on -a mode: sudo ./automate-eGPU.sh -a. If the first try is not successful -a mode turned on, turn it off (sudo ./automate-eGPU.sh -m), start from the beginning and skip this step.
7) If you have a TB3 Mac, an USB-C adapter (such as USB-C to USB, USB-C to DP) plugged in the other TB3 port is necessary for now. Thanks to FricoRico for the hint to boot into macOS with an external display, and later switch over to the eGPU output. This method works when eGPU does not share dGPU’s framebuffer (Mid 2015 15” MBP w/ M370X + RX 480 for example).
UPDATE: The USB-C trick that was necessary to have acceleration on macOS 10.12.2/10.12.3 + AMDs, doesn’t work after macOS 10.12.4 upgrade. Downgrading to 10.12.3 doesn’t help. If you can do firmware downgrade, that might help.
8) Connect eGPU and boot into macOS, and soon you hear the “whoosh” sound!
Supported GPUs
- Nvidia Kepler (10.9.5 — 10.12.*): Apple’s native driver support, up to GTX 780 6GB (sudo ./automate-eGPU.sh -skip-web-driver)
- Nvidia Maxwell (10.10 — 10.12.*): beta web driver support (automatic downloading)
- Nvidia Pascal (10.12.4 — ): beta web driver support (automatic downloading)
All AMD cards from Bonaire, Hawaii, Pitcairn, Tahiti, Tonga, Verde and Baffin families are natively supported.
Recommended AMD cards: HD 7970, R9 Fury/Nano, RX 460/470/480. Avoid XFX brand.
I have not tested RX 500 series. They have same device ids as RX 4XXs cards as far as I know and should work.
Unsupported Macs
Mid 2011 Mac mini with HD 6630M
Late 2014 — Late 2015 5K iMacs
Some conflicts may happen with dGPU equipped Macs depending on the OS/firmware version.
«sudo ./automate-eGPU.sh -a» may help, but it’s not guaranteed.
It’s preferred to use the latest macOS version.
Command-line options
-uninstall option should be very reliable with Nvidia since there have no been any bug reports about this at GitHub for years. If some kexts are manually modded at any point prior to the script execution, uninstall option can’t restore the originals as they never were available.
-a option does the same as hot plugging during the boot process. As of macOS Sierra, Apple changed kext loading mechanism significantly and I am not sure if this is required at present but it was necessary to turn on with Macs released after 2014, especially if you had a multi-slot enclosure. When turned on, you just have to click the OK button and restart the Mac when a new Nvidia web driver is available. The -a mode is not supported on Macs released after 2015.
-url option allows Nvidia beta driver installation
-skip-web-driver allows to use Apple’s official Nvidia drivers (Kepler), starting from OS X 10.9.5
-clpeak option is a good tool to test if you have eGPU acceleration or not
-skip-agdc option should not mess up iMac 5K screen. If it does, it’s a bug. It does not provide eGPU screen output with Nvidia but CUDA, OpenCL and Metal calculation should be still possible. No one has tested AMD.
All options are meant to be used one at a time.
An alternative approach, including support for 5K iMac
@Rastafabi has applied a codeless kext solution to macOS eGPU automation. Currently for Nvidia cards only:
Changelog
What’s new in v1.0.1? (29-Apr-2017)
- Added support for AMD Baffin in 10.12.4
What’s new in v1.0.0? (15-Jan-2017)
The script takes care of nearly every Mac model, thanks to feedback from eGPU community. It does matter if you use a multi-slot enclosure. The nMP freezes on startup on Sonnet III-D and Netstor NA211TB. You need to use the -a option. The same with the Late 2013 15” MBP (with 750M), and Early 2015 13” MBP.
On macOS Sierra, Nvidia driver kindly clears the obsolete “boot-args” key, and sets “nvda_drv” nvram value as default.
And last but not least, AMD Polaris & Fiji support for macOS. RX 480 and R9 Nano confirmed to work.
I’ve discontinued the script development but my friend FricoRico is willing to continue. He added Polaris support and advised Ikir in his Thunder3 implementation.
The first ever TB3 implementation was reality with an AMD card on macOS. FricoRico’s Polaris support changes were surprisingly similar to mine. I’ve simplified and fine-tuned, added a completely new cache file rebuilding. Now it’s better than ever. Beginning from the Mavericks build 13F34, the script survived from each OS upgrade in my testing.
Background
The original script (v0.9) was a small weekend project, in summer 2015. Let’s go back in time to the year 2011 when Apple introduced the first generation Thunderbolt Macs — the first machines featuring completely new I/O technology. The Mid 2011 Mac mini is still one of my favourite machines. Would have served well as a media center with an EyeTV, but Apple TV replaced it.
Whose idea was it originally to use external GPUs over Thunderbolt on OS X?
The first public implementations are from 2012:
The first version of a document for developers was published on [21/12/2011], and actually, the idea of “PCI expansion” is proposed by Apple in Figure 1-3:
Apple’s documents also describe the key word “IOPCITunnelCompatible». That’s all we need and how the script has been working when the initial AMD support was added in v0.9.4. It doesn’t apply AGDC modification when an AMD card is present.
Someone wrote on other forums that AppleIntelFramebufferAzul didn’t have anything to do with AGDC. I encourage questioning, and critical thinking.
Written by Apple for debugging purposes in AppleIntelFramebufferAzul.kext’s connectionProbe method. This limitation was removed in Mavericks build 13F1066. Then Apple put it back on Yosemite. By comparing ioreg command outputs of 13F34 & 13F1066, I found another way to have eGPU screen output via an Nvidia card.
My Late 2013 13” MBP gave the screen output, but the 15” Late 2013 MBP didn’t. The reason was simply a missing board-id in AppleGraphicsDevicePolicy.kext’s Info.plist file.
Turned out that the same method was originally discovered by Pike [17/04/2014].
Late-2016 forum re-organization
I was kicked off from TechInferno forum for unexplained reasons very soon after Nando. The same thing happened to a group of other long-term TI users. I cannot recommend a site whose admins don’t reply to emails and ban users without explanation, and suddenly relocates to an East African island.
Why do I still have motivation to stand up after my automate-eGPU threads were hijacked? What itsage did, is invaluable. He built us a new home. We are a community.
macOS eGPUs are popular
GitHub’s traffic statistics indicate that automate-eGPU.sh is still widely familiar regardless of my decision to quit. Selling hacks is a dead end idea due to Apple’s SLA. Bizon found a short cut and spammed Wolfe’s kickstarter project. Arrogant marketing. Why haven’t we seen any official driver development for outsourcing the CUDA/OpenCL/Metal computing? I do hope that Wolfe will be back with the solution that works SIP enabled. I know it’s possible. Gaming laptops are heavy and noisy, and have the worst battery life. Properly assembled eGPU enclosure is silent, it can be portable too but professionals prefer high-end performance and upgradable GPUs. Intel has finally allowed eGFX enclosures along with TB3 technology, but the start has been firmware mismatch mess.
It would be AMD’s and Nvidia’s duty to create official eGPU compatible drivers on macOS. If they don’t, we developers do our best. Some people still think what’s the purpose of kernel extension/EFI solution if the script is still necessary. It’s not necessary.
Источник