[APP] NVIDIA eGPU support for High Sierra (NVIDIAEGPUSupport)
 
Notifications
Clear all

[APP] NVIDIA eGPU support for High Sierra (NVIDIAEGPUSupport)  

 of  199
  RSS

j.navarro
(@j-navarro)
Active Member
Joined: 3 years ago
 

Dang! Thanks, now I have to figure out why my clinfo does not detect my eGPU!

2011 17" MacBook Pro (HD6750M) [2nd,4C,Q] + GTX 960 @ 10Gbps-TB1>TB3 (AKiTiO Thunder3) + macOS 10.13.2 [build link]  

ReplyQuote
j.navarro
(@j-navarro)
Active Member
Joined: 3 years ago
 

This is what I get:

% clinfo
Number of platforms 1
Platform Name Apple
Platform Vendor Apple
Platform Version OpenCL 1.2 (Oct 31 2017 18:19:43)
Platform Profile FULL_PROFILE
Platform Extensions cl_APPLE_SetMemObjectDestructor cl_APPLE_ContextLoggingFunctions cl_APPLE_clut cl_APPLE_query_kernel_names cl_APPLE_gl_sharing cl_khr_gl_event

Platform Name Apple
Number of devices 2
Device Name Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz
Device Vendor Intel
Device Vendor ID 0xffffffff
Device Version OpenCL 1.2
Driver Version 1.1
Device OpenCL C Version OpenCL C 1.2
Device Type CPU
Device Available Yes
Device Profile FULL_PROFILE
Max compute units 8
Max clock frequency 2200MHz
Device Partition (core)
Max number of sub-devices 0
Supported partition types None
Max work item dimensions 3
Max work item sizes 1024x1x1
Max work group size 1024
Compiler Available Yes
Linker Available Yes
Preferred work group size multiple 1
Preferred / native vector sizes
char 16 / 16
short 8 / 8
int 4 / 4
long 2 / 2
half 0 / 0 (n/a)
float 4 / 4
double 2 / 2 (cl_khr_fp64)
Half-precision Floating-point support (n/a)
Single-precision Floating-point support (core)
Denormals Yes
Infinity and NANs Yes
Round to nearest Yes
Round to zero Yes
Round to infinity Yes
IEEE754-2008 fused multiply-add Yes
Support is emulated in software No
Correctly-rounded divide and sqrt operations Yes
Double-precision Floating-point support (cl_khr_fp64)
Denormals Yes
Infinity and NANs Yes
Round to nearest Yes
Round to zero Yes
Round to infinity Yes
IEEE754-2008 fused multiply-add Yes
Support is emulated in software No
Address bits 64, Little-Endian
Global memory size 17179869184 (16GiB)
Error Correction support No
Max memory allocation 4294967296 (4GiB)
Unified memory for Host and Device Yes
Minimum alignment for any data type 128 bytes
Alignment of base address 1024 bits (128 bytes)
Global Memory cache type Read/Write
Global Memory cache size 64
Global Memory cache line size 6291456 bytes
Image support Yes
Max number of samplers per kernel 16
Max size for 1D images from buffer 65536 pixels
Max 1D or 2D image array size 2048 images
Base address alignment for 2D image buffers 1 bytes
Pitch alignment for 2D image buffers 1 pixels
Max 2D image size 8192x8192 pixels
Max 3D image size 2048x2048x2048 pixels
Max number of read image args 128
Max number of write image args 8
Local memory type Global
Local memory size 32768 (32KiB)
Max constant buffer size 65536 (64KiB)
Max number of constant args 8
Max size of kernel argument 4096 (4KiB)
Queue properties
Out-of-order execution No
Profiling Yes
Prefer user sync for interop Yes
Profiling timer resolution 1ns
Execution capabilities
Run OpenCL kernels Yes
Run native kernels Yes
printf() buffer size 1048576 (1024KiB)
Built-in kernels
Device Extensions cl_APPLE_SetMemObjectDestructor cl_APPLE_ContextLoggingFunctions cl_APPLE_clut cl_APPLE_query_kernel_names cl_APPLE_gl_sharing cl_khr_gl_event cl_khr_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_image2d_from_buffer cl_APPLE_fp64_basic_ops cl_APPLE_fixed_alpha_channel_orders cl_APPLE_biased_fixed_point_image_formats cl_APPLE_command_queue_priority

Device Name ATI Radeon HD 6750M
Device Vendor AMD
Device Vendor ID 0x1021b00
Device Version OpenCL 1.2
Driver Version 1.2 (Nov 9 2017 18:48:37)
Device OpenCL C Version OpenCL C 1.2
Device Type GPU
Device Available Yes
Device Profile FULL_PROFILE
Max compute units 6
Max clock frequency 600MHz
Device Partition (core)
Max number of sub-devices 0
Supported partition types None
Max work item dimensions 3
Max work item sizes 256x256x256
Max work group size 256
Compiler Available Yes
Linker Available Yes
Preferred work group size multiple 64
Preferred / native vector sizes
char 16 / 16
short 8 / 8
int 4 / 4
long 2 / 2
half 0 / 0 (n/a)
float 4 / 4
double 0 / 0 (n/a)
Half-precision Floating-point support (n/a)
Single-precision Floating-point support (core)
Denormals No
Infinity and NANs Yes
Round to nearest Yes
Round to zero Yes
Round to infinity Yes
IEEE754-2008 fused multiply-add No
Support is emulated in software No
Correctly-rounded divide and sqrt operations No
Double-precision Floating-point support (n/a)
Address bits 32, Little-Endian
Global memory size 1073741824 (1024MiB)
Error Correction support No
Max memory allocation 268435456 (256MiB)
Unified memory for Host and Device No
Minimum alignment for any data type 128 bytes
Alignment of base address 32768 bits (4096 bytes)
Global Memory cache type None
Image support Yes
Max number of samplers per kernel 16
Max size for 1D images from buffer 65536 pixels
Max 1D or 2D image array size 2048 images
Base address alignment for 2D image buffers 256 bytes
Pitch alignment for 2D image buffers 256 pixels
Max 2D image size 16384x16384 pixels
Max 3D image size 2048x2048x2048 pixels
Max number of read image args 128
Max number of write image args 8
Local memory type Local
Local memory size 32768 (32KiB)
Max constant buffer size 65536 (64KiB)
Max number of constant args 8
Max size of kernel argument 1024
Queue properties
Out-of-order execution No
Profiling Yes
Prefer user sync for interop Yes
Profiling timer resolution 37ns
Execution capabilities
Run OpenCL kernels Yes
Run native kernels No
printf() buffer size 134217728 (128MiB)
Built-in kernels
Device Extensions cl_APPLE_SetMemObjectDestructor cl_APPLE_ContextLoggingFunctions cl_APPLE_clut cl_APPLE_query_kernel_names cl_APPLE_gl_sharing cl_khr_gl_event cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_image2d_from_buffer cl_khr_depth_images

NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) Apple
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [P0] clCreateContext(NULL, ...) [default] Success [P0] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1)
Platform Name Apple
Device Name ATI Radeon HD 6750M
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) Success (1)
Platform Name Apple
Device Name Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1)
Platform Name Apple
Device Name ATI Radeon HD 6750M
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) <checkNullCtxFromType:2444: create context from type CL_DEVICE_TYPE_CUSTOM : error -30>
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (2)
Platform Name Apple
Device Name ATI Radeon HD 6750M
Device Name Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz
NOTE: your OpenCL library only supports OpenCL 1.0,
but some installed platforms support OpenCL 1.2.
Programs using 1.2 features may crash
or behave unexepectedly

2011 17" MacBook Pro (HD6750M) [2nd,4C,Q] + GTX 960 @ 10Gbps-TB1>TB3 (AKiTiO Thunder3) + macOS 10.13.2 [build link]  

ReplyQuote
ricosuave0922
(@ricosuave0922)
Trusted Member
Joined: 3 years ago
 
Posted by: j.navarro
Posted by: ricosuave0922
Posted by: j.navarro

So let me ask it differently: has anyone managed to run OpenCL on an eGPU?

I mean from a Mac over Thunderbolt.

And, if so, what does clinfo say? 

If you can give me some details on how/what to use to test OpenCL I'd be more than happy to play around and see if i can get things working reliably.

That would be great, @ricosuave0922, thank you. clinfo can be obtained from

https://github.com/Oblomov/clinfo/archive/master.zip

and it compiles and runs right away for me.

Looks like ive got the same result as @mbnwa. How do you have your monitors configured? Are you using headless adapter to accelerate internal screen or are you using external monitor? Which monitor is set as your default? etc.

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
mbnwa
(@mbnwa)
Active Member
Joined: 3 years ago
 

Currently have installed:

OSX 10.13.2

Nvidia Driver 378.10.10.10.25.102

CUDA 387.99

Utilizing a Mantiz MZ-02

Acer X34 connected to the 1080TI in addition set as primary / default monitor for OSX

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
j.navarro
(@j-navarro)
Active Member
Joined: 3 years ago
 

@ricosuave0922: Here is my setup:

I have run the setup as per the top of the page, and both monitors are shown as running off the GTX960, as in the screenshots above. However, everything including iStat Menus seems to indicate that the internal GPU is the one running the show, not the GTX 960.

Not sure what you mean by "default monitor", but this is what I did:

  • power on with the eGPU on
  • it is detected and it shows in Settings/Displays
  • move the menu bar from the laptop window to the external display
  • option-move the laptop window to the external display (with menu bar), which causes mirroring
  • and this is where it automatically is at when I reboot.

I don't have a headless display but I could try different combinations without the display etc. Not sure what would be most telling.

What I get is this, just two devices:

% clinfo –list
Platform #0: Apple
+– Device #0: Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz
`– Device #1: ATI Radeon HD 6750M

2011 17" MacBook Pro (HD6750M) [2nd,4C,Q] + GTX 960 @ 10Gbps-TB1>TB3 (AKiTiO Thunder3) + macOS 10.13.2 [build link]  

ReplyQuote
mbnwa
(@mbnwa)
Active Member
Joined: 3 years ago
 

Please see the email I sent you outside this thread

Platform #0: Apple
+-- Device #0: Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz
+-- Device #1: Intel(R) HD Graphics 630
+-- Device #2: AMD Radeon Pro 560 Compute Engine
`-- Device #3: GeForce GTX 1080 Ti

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
ricosuave0922
(@ricosuave0922)
Trusted Member
Joined: 3 years ago
 

@j.navarro do you have automatic graphics switching checked in Energy Saver? If so uncheck it and try again. Also, is there a reason you are using an external display and mirroring? why not use them as separate displays?

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
j.navarro
(@j-navarro)
Active Member
Joined: 3 years ago
 

@ricosuave0922 For some reason I did have automatic graphics switching on now, even if I had disabled it earlier. But I had just tried an nvram clear and a bunch of things that forced me to repeat the procedure in this blog from scratch. Now I am back to where I started, with automatic switching off and everything appearing ok but clinfo still not showing the GTX960 eGPU.

What led to this is that I didn't have CUDA installed and thought that maybe it would help. Normally I run OpenCL on the integrated GPU and it works fine, so I now thought that installing CUDA 387.99 perhaps helped Apple OpenCL talk with the Nvidia GPU... It appears like there was no luck.

However, I notice something strange in the console: an endless repetition of this error message for WindowServer (SkyLight) in subsystem com.apple.SkyLight.

           default  WindowServer No matching context for device (0x7f8c47229e10) - disabling acceleration.

Does it ring any bells?

2011 17" MacBook Pro (HD6750M) [2nd,4C,Q] + GTX 960 @ 10Gbps-TB1>TB3 (AKiTiO Thunder3) + macOS 10.13.2 [build link]  

ReplyQuote
j.navarro
(@j-navarro)
Active Member
Joined: 3 years ago
 

@ricosuave0922: I only had mirroring on because it seemed to be indicated in these instructions, but now it is off. No difference to clinfo, unfortunately.

2011 17" MacBook Pro (HD6750M) [2nd,4C,Q] + GTX 960 @ 10Gbps-TB1>TB3 (AKiTiO Thunder3) + macOS 10.13.2 [build link]  

ReplyQuote
hkoster1
(@hkoster1)
Eminent Member
Joined: 3 years ago
 
Posted by: j.navarro
Posted by: hkoster1

Well, that depends on the OpenCL platforms made available by the various "vendors".

On my 2017 15-inch MacBook Pro QC i7 the only available platform is by Apple, counting 4 devices:

- the Intel QC i7 CPU

- the integrated Intel HD Graphics 630

- the additional AMD Radeon Pro 630

- and the eGPU NVidia GeForce GTX 1080Ti

This info comes from running the OpenCLInfo example from the OpenCL Programming Guide. So, it appears that there are no separate platforms by AMD and NVidia.

Thank you, @hkoster1. Could I bother you by asking what eGPU enclosure you are using, and what your config is like (MacOS, nvidia drivers, eGPU setup)? I am trying to figure out if my problem is one of configuration (it probably is) or if it is my older MBP (doubtful). I really want to get to the bottom of this... and get cracking with OpenCL by getting a GTX 1080 Ti too, but I won't buy it until it works with the GTX 960.

I'm using the Sonnet eGFX 550 enclosure, a Dell P2415Q DisplayPort monitor, and further all the latest updates of macOS and the procedure on page 1 of this thread. I hotplug the Sonnet box when logged in as my user self (System Report then recognizes some undefined NVidia object), then I log out and after a momentary black screen the external monitor comes to life. I make that screen the primary one by dragging the menu bar to it, and then I just close the lid of my MacBook Pro (which shuts off the internal screen).

Unigine Heaven or Valley show excellent performance, but my favourite Trainz game (T:ANE) refuses to utilize the eGPU, and instead reverts to the Intel integrated HD 630 graphics (judging by the frame rates) -- why I don't know.

My OpenCLInfo (showing the 4 devices) is the example from The OpenCL Programming Guide). I'll try and run one of the other examples exclusively off the GTX 1080Ti, but it's been awhile since I last looked at OpenCL... 

 

 

Radeon RX 5700 XT + Razer Core X + LG 23.7" 4K UltraFine + Huawei VR2 DP/USB to USB-C cable
Mac Mini 2018 always latest public macOS build

 
2017 Intel NUC7i5BNH [7th,2C,U] + GTX 1080 Ti @ 32Gbps-TB3 (Sonnet Breakaway 550) + Win10 [build link]  


ReplyQuote
 of  199