Using eGPU with hashcat
I sometimes am not able to use my main cracking rig while traveling but still require a decent amount of compute. I picked up a Razer Core X eGPU to test using hashcat with a eGPU connected via Thunderbolt 3. Does anyone have experience with this? After just plug and play the card (old AMD card) is detected by the OS (Mac OS), but the card does not appear in hashcat -I. Would be willing to be a test case if anyone has idea on how to make this work.
I'm currently running a Lenovo T-series laptop with The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) and the Gigabyte Aorus GTX 1080 GamingBox - works like a charm! I know it's not the same as your setup, but I just wanted to put it out there if anyone else was intrigued by this eGPU-thing. Smile

From what I remember - you need to be careful when selecting the eGPU, OS and PC hardware configuration. It might be useful to the community if you supplied further details. One thing you could do is to check whether or not the eGPU works for other applications - or is it just Hashcat that wont work? You could also try using another OS.

EDIT: I'm a newbie - what distro is better at handling OpenCL?
Maybe this?
Awesome I will reach out to that person on twitter and ref this thread, maybe get some details there. My setup currently is

Macbook Pro 2017
Intel HD Graphics w/ Radeon Pro 560

Using the Razer Core X eGpu with a Gigabyte AMD HD7970

I do see the card recognized in system profiler as AMD:

 Type: External GPU
 Bus: PCIe
 PCIe Lane Width: x4
 VRAM (Dynamic, Max):
 Vendor: AMD (0x1002)
 Device ID: 0x6798
 Revision ID: 0x0000
 Automatic Graphics Switching: Supported
 gMux Version: 4.0.29 [3.2.8]

OpenCL Info:

Platform ID #1
 Vendor  : Apple
 Name    : Apple
 Version : OpenCL 1.2 (Oct 31 2018 21:59:22)

 Device ID #1
   Type           : CPU
   Vendor ID      : 4
   Vendor         : Intel
   Name           : Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz
   Version        : OpenCL 1.2
   Processor(s)   : 8
   Clock          : 3100
   Memory         : 4096/16384 MB allocatable
   OpenCL Version : OpenCL C 1.2
   Driver Version : 1.1

 Device ID #2
   Type           : GPU
   Vendor ID      : 2147483648
   Vendor         : Intel Inc.
   Name           : Intel(R) HD Graphics 630
   Version        : OpenCL 1.2
   Processor(s)   : 24
   Clock          : 1100
   Memory         : 384/1536 MB allocatable
   OpenCL Version : OpenCL C 1.2
   Driver Version : 1.2(Dec 20 2018 21:30:35)

 Device ID #3
   Type           : GPU
   Vendor ID      : 1
   Vendor         : AMD
   Name           : AMD Radeon Pro 560 Compute Engine
   Version        : OpenCL 1.2
   Processor(s)   : 16
   Clock          : 300
   Memory         : 1024/4096 MB allocatable
   OpenCL Version : OpenCL C 1.2
   Driver Version : 1.2 (Dec 20 2018 21:22:54)

I did consider recompiling hashcat? I didn't know if there was a build process that might compile something specific to detection all connected opencl devices.
(02-13-2019, 05:19 PM)atom Wrote: Maybe this?

Actually, I just did a double take on that screenshot... I think that is the discrete gpu that ships with the new macs... its not the one in the eGPU Sad
I think not all AMD cards will work in an eGPU on MacOS by default.  Here's the official Apple document on what is supported:

If you're not worried about getting support from Apple, there's also the unofficial route:

For me, I'm running an AMD RX580 in a Razer Core X and it Just Worked.

$ hashcat -d 3 -m 1000 -b
hashcat (v5.1.0) starting in benchmark mode...

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

OpenCL Platform #1: Apple
* Device #1: Intel(R) Xeon(R) W-2140B CPU @ 3.20GHz, skipped.
* Device #2: AMD Radeon Pro Vega 56 Compute Engine, skipped.
* Device #3: AMD Radeon RX 580 Compute Engine, 2048/8192 MB allocatable, 36MCU

Benchmark relevant options:
* --opencl-devices=3
* --optimized-kernel-enable

Hashmode: 1000 - NTLM

Speed.#3.........: 19455.1 MH/s (61.15ms) @ Accel:256 Loops:512 Thr:256 Vec:1
(02-13-2019, 06:59 PM)sneaky_peet Wrote:
(02-13-2019, 05:19 PM)atom Wrote: Maybe this?

Actually, I just did a double take on that screenshot... I think that is the discrete gpu that ships with the new macs... its not the one in the eGPU Sad

sorry i'm late to the party. 

First, yes the picture I posted is an eGPU, NOT onboard. Its in a Sonnet eGPU chassis. 

As was mentioned, I chose a GPU only from the list of supported devices on Macbooks, that being the RX570 in my case. 

Mine worked out of the box with the following;
1. Installed e-GPU into Sonnet case and plugged into Mac
2. Mac is running Mojave 10.14.3. 
3. I downloaded source code from and extracted it.
4. In the extracted folder I ran "make" (NOTE: I have XCode installed and license accepted)
5. I can run ./hashcat -b and it begins a benchmark showing 3 devices : the CPU, internal Intel GPU and the External e-GPU RX570. I can then crack by just specifying the GPU device. 

Note the following as well:

I have 2 screens connected to the eGPU while using it (I have not tested but make sure your eGPU is not perhaps going into some kind of off mode if there's no monitors - although it shouldn't really)

The Sonnet did not need any additional drivers. Make sure your eGPU device does not need a particular driver for MacOS to see the pci-express slot. (although if its compatible with Mac it should be fine)

Let me know how it goes.
As an added bonus, cracking is one of the workflows where Thunderbolt is absolutely fast enough for checking some low hanging fruit - at least in the context of up to 2-3 eGPUs attached. Benchmarks identical vs. cards housed on an internal PCIe bus.

RX580s are on Craigslist for $100 all day long.