Update requested on OSX and modern GPU's
Posted: Sun Jan 27, 2019 6:38 pm
Mod note: Edited to take portions out of Code tags, removed redundant/unnecessary material
Have already read that GPU support is not enabled in OSX.
Am trying to figure out if there is any progress on that front, and if not, any workaround, or at least a better explanation than just "no, it won't work".
As OSX is really BSD under the hood, seems that it wouldn't be that much different enabling GPU support than in a Linux installation, provided the CUDA and OpenCL libraries are properly installed.
Am running High Sierra with an nVidia Titan XP. Naturally, the thought of using 3K+ GPU cores sounds better than what the CPU has to offer.
nVidia's CUDA drivers are installed and libcuda.dylib is linked to /usr/local/lib/
The native OSX OpenCL library - /System/Library/Frameworks/OpenCL.framework/OpenCL - is linked to /usr/local/lib/libOpenCL.dylib
Configuring FAHControl for the CPU works as expected. However, when attempting to configure it for the GPU, it fails, never getting any work unit assignments.
Suspect the problem is that FAHCoreWrapper is never getting called. When set for CPU the log shows:
WU01:FS01:Running FahCore: /usr/local/bin/FAHCoreWrapper "/Library/Application Support/FAHClient/cores/cores.foldingathome.org/OSX/AMD64/AVX/Core_a7.fah/FahCore_a7" -dir 01 -suffix 01 -version 705 -lifeline 18422 -checkpoint 15 -np 10
But there is no such corresponding call to the wrapper (with whatever flags would point it to the correct hardware) when using the GPU, nor anything that looks GPU related in the "cores.foldingathome.org" folder.
(Looked at a Linux installation too, but all "cores.foldingathome.org" had was a "Linux" subfolder also containing "AMD64"; then again, that could have been because the boxes I looked at doesn't have a GPU, so the necessary dependencies never got installed.)
Are there flags one could use to experiment with manually pointing it to the GPU on OSX?
If not, are there any plans to add such an option to the wrapper, or a list of what all *can* be passed to the wrapper? While you don't publish your source code, have downloaded the OpenMM code but not yet dug that far into it.
I realize OSX has a much smaller market share than WinDoze; around 15 percent of what Redmond pulls in, but hey, even Android has edged them out these days! Still - at least so far as GUI installations goes - it's over seven times what Linux controls, so doesn't make any sense why your code wouldn't have GPU support for the that platform.
FAHControl log, --print & --info from FAHClient shown below. (--print & --info results removed - redundant)
Please advise. Thanks!
--
Carl
PS: Since I just joined, it wouldn't let me post the log due to your website link being embedded in it. Hilarious! Even after wrapping the log in code, it still wouldn't work. Got tired of trying to figure out what it didn't like - not commercial at's. File paths pehaps?
and just wrapped the whole post. Also, time to update your copyright...
Have already read that GPU support is not enabled in OSX.
Am trying to figure out if there is any progress on that front, and if not, any workaround, or at least a better explanation than just "no, it won't work".
As OSX is really BSD under the hood, seems that it wouldn't be that much different enabling GPU support than in a Linux installation, provided the CUDA and OpenCL libraries are properly installed.
Am running High Sierra with an nVidia Titan XP. Naturally, the thought of using 3K+ GPU cores sounds better than what the CPU has to offer.
nVidia's CUDA drivers are installed and libcuda.dylib is linked to /usr/local/lib/
The native OSX OpenCL library - /System/Library/Frameworks/OpenCL.framework/OpenCL - is linked to /usr/local/lib/libOpenCL.dylib
Configuring FAHControl for the CPU works as expected. However, when attempting to configure it for the GPU, it fails, never getting any work unit assignments.
Suspect the problem is that FAHCoreWrapper is never getting called. When set for CPU the log shows:
WU01:FS01:Running FahCore: /usr/local/bin/FAHCoreWrapper "/Library/Application Support/FAHClient/cores/cores.foldingathome.org/OSX/AMD64/AVX/Core_a7.fah/FahCore_a7" -dir 01 -suffix 01 -version 705 -lifeline 18422 -checkpoint 15 -np 10
But there is no such corresponding call to the wrapper (with whatever flags would point it to the correct hardware) when using the GPU, nor anything that looks GPU related in the "cores.foldingathome.org" folder.
(Looked at a Linux installation too, but all "cores.foldingathome.org" had was a "Linux" subfolder also containing "AMD64"; then again, that could have been because the boxes I looked at doesn't have a GPU, so the necessary dependencies never got installed.)
Are there flags one could use to experiment with manually pointing it to the GPU on OSX?
If not, are there any plans to add such an option to the wrapper, or a list of what all *can* be passed to the wrapper? While you don't publish your source code, have downloaded the OpenMM code but not yet dug that far into it.
I realize OSX has a much smaller market share than WinDoze; around 15 percent of what Redmond pulls in, but hey, even Android has edged them out these days! Still - at least so far as GUI installations goes - it's over seven times what Linux controls, so doesn't make any sense why your code wouldn't have GPU support for the that platform.
FAHControl log, --print & --info from FAHClient shown below. (--print & --info results removed - redundant)
Please advise. Thanks!
--
Carl
PS: Since I just joined, it wouldn't let me post the log due to your website link being embedded in it. Hilarious! Even after wrapping the log in code, it still wouldn't work. Got tired of trying to figure out what it didn't like - not commercial at's. File paths pehaps?
and just wrapped the whole post. Also, time to update your copyright...
Code: Select all
FAHControl log:
*********************** Log Started 2019-01-27T15:42:52Z ***********************
15:42:52:************************* Folding@home Client *************************
15:42:52: Website: https://foldingathome.org/
15:42:52: Copyright: (c) 2009-2018 foldingathome.org
15:42:52: Author: Joseph Coffland <[email protected]>
15:42:52: Args:
15:42:52: Config: /Library/Application Support/FAHClient/config.xml
15:42:52:******************************** Build ********************************
15:42:52: Version: 7.5.1
15:42:52: Date: May 11 2018
15:42:52: Time: 12:57:01
15:42:52: Repository: Git
15:42:52: Revision: 4705bf53c635f88b8fe85af7675557e15d491ff0
15:42:52: Branch: master
15:42:52: Compiler: GNU 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)
15:42:52: Options: -std=gnu++98 -O3 -funroll-loops -mmacosx-version-min=10.6
15:42:52: -Wno-unused-local-typedefs
15:42:52: Platform: darwin 15.6.0
15:42:52: Bits: 64
15:42:52: Mode: Release
15:42:52:******************************* System ********************************
15:42:52: CPU: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
15:42:52: CPU ID: GenuineIntel Family 6 Model 158 Stepping 10
15:42:52: CPUs: 12
15:42:52: Memory: 32.00GiB
15:42:52: Free Memory: 16.06GiB
15:42:52: Threads: POSIX_THREADS
15:42:52: OS Version: 10.13
15:42:52: Has Battery: false
15:42:52: On Battery: false
15:42:52: UTC Offset: -6
15:42:52: PID: 18422
15:42:52: CWD: /Library/Application Support/FAHClient
15:42:52: OS: Darwin 17.7.0 x86_64
15:42:52: OS Arch: AMD64
15:42:52: GPUs: 1
15:42:52: GPU 0: Bus:1 Slot:0 Func:0 NVIDIA:7 GP102 [TITAN Xp] 12150
15:42:52: CUDA Device 0: Platform:0 Device:0 Bus:1 Slot:0 Compute:6.1 Driver:10.0
15:42:52:OpenCL Device 1: Platform:0 Device:1 Bus:NA Slot:NA Compute:1.2 Driver:387.10
15:42:52:OpenCL Device 2: Platform:0 Device:2 Bus:NA Slot:NA Compute:1.2 Driver:1.2
15:42:52:***********************************************************************
15:42:52:<config>
15:42:52: <!-- Folding Slot Configuration -->
15:42:52: <cause v='PARKINSONS'/>
15:42:52: <gpu v='true'/>
15:42:52:
15:42:52: <!-- Network -->
15:42:52: <proxy v=':8080'/>
15:42:52:
15:42:52: <!-- User Information -->
15:42:52: <passkey v='********************************'/>
15:42:52: <team v='230319'/>
15:42:52: <user v='osxtra'/>
15:42:52:
15:42:52: <!-- Folding Slots -->
15:42:52: <slot id='1' type='CPU'/>
15:42:52:</config>
15:42:52:Trying to access database...
15:42:52:Successfully acquired database lock
15:42:52:Enabled folding slot 01: READY cpu:11
15:42:52:WU01:FS01:Starting
15:42:52:WARNING:WU01:FS01:AS lowered CPUs from 11 to 10
15:42:52:WU01:FS01:Running FahCore: /usr/local/bin/FAHCoreWrapper "/Library/Application Support/FAHClient/cores/cores.foldingathome.org/OSX/AMD64/AVX/Core_a7.fah/FahCore_a7" -dir 01 -suffix 01 -version 705 -lifeline 18422 -checkpoint 15 -np 10
15:42:52:WU01:FS01:Started FahCore on PID 18463
15:42:52:WU01:FS01:Core PID:18469
15:42:52:WU01:FS01:FahCore 0xa7 started
*********************** Log Started 2019-01-27T15:42:52Z ***********************
15:42:52:WU01:FS01:0xa7:************************** Gromacs Folding@home Core ***************************
15:42:52:WU01:FS01:0xa7: Type: 0xa7
15:42:52:WU01:FS01:0xa7: Core: Gromacs
15:42:52:WU01:FS01:0xa7: Website: https://foldingathome.org/
15:42:52:WU01:FS01:0xa7: Copyright: (c) 2009-2018 foldingathome.org
15:42:52:WU01:FS01:0xa7: Author: Joseph Coffland <[email protected]>
15:42:52:WU01:FS01:0xa7: Args: -dir 01 -suffix 01 -version 705 -lifeline 18463 -checkpoint 15 -np
15:42:52:WU01:FS01:0xa7: 10
15:42:52:WU01:FS01:0xa7: Config: <none>
15:42:52:WU01:FS01:0xa7:************************************ Build *************************************
15:42:52:WU01:FS01:0xa7: Version: 0.0.17
15:42:52:WU01:FS01:0xa7: Date: Apr 25 2018
15:42:52:WU01:FS01:0xa7: Time: 10:52:35
15:42:52:WU01:FS01:0xa7: Repository: Git
15:42:52:WU01:FS01:0xa7: Revision: fd11abfb405c921e66db1226933e9dd2d18d2acc
15:42:52:WU01:FS01:0xa7: Branch: master
15:42:52:WU01:FS01:0xa7: Compiler: GNU 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)
15:42:52:WU01:FS01:0xa7: Options: -std=gnu++98 -O3 -funroll-loops -mmacosx-version-min=10.6
15:42:52:WU01:FS01:0xa7: -Wno-unused-local-typedefs
15:42:52:WU01:FS01:0xa7: Platform: darwin 15.6.0
15:42:52:WU01:FS01:0xa7: Bits: 64
15:42:52:WU01:FS01:0xa7: Mode: Release
15:42:52:WU01:FS01:0xa7: SIMD: avx_256
15:42:52:WU01:FS01:0xa7:************************************ System ************************************
15:42:52:WU01:FS01:0xa7: CPU: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
15:42:52:WU01:FS01:0xa7: CPU ID: GenuineIntel Family 6 Model 158 Stepping 10
15:42:52:WU01:FS01:0xa7: CPUs: 12
15:42:52:WU01:FS01:0xa7: Memory: 32.00GiB
15:42:52:WU01:FS01:0xa7:Free Memory: 16.00GiB
15:42:52:WU01:FS01:0xa7: Threads: POSIX_THREADS
15:42:52:WU01:FS01:0xa7: OS Version: 10.13
15:42:52:WU01:FS01:0xa7:Has Battery: false
15:42:52:WU01:FS01:0xa7: On Battery: false
15:42:52:WU01:FS01:0xa7: UTC Offset: -6
15:42:52:WU01:FS01:0xa7: PID: 18469
15:42:52:WU01:FS01:0xa7: CWD: /Library/Application Support/FAHClient/work
15:42:52:WU01:FS01:0xa7: OS: Darwin 17.7.0 x86_64
15:42:52:WU01:FS01:0xa7: OS Arch: AMD64
15:42:52:WU01:FS01:0xa7:********************************************************************************
15:42:52:WU01:FS01:0xa7:Project: 14116 (Run 29, Clone 19, Gen 23)
15:42:52:WU01:FS01:0xa7:Unit: 0x0000001e0002894c5b8400a8124bd8c7
15:42:52:WU01:FS01:0xa7:Digital signatures verified
15:42:52:WU01:FS01:0xa7:Calling: mdrun -s frame23.tpr -o frame23.trr -cpi state.cpt -cpt 15 -nt 10
15:42:52:WU01:FS01:0xa7:Steps: first=57500000 total=2500000
15:42:53:WU01:FS01:0xa7:Completed 1853422 out of 2500000 steps (74%)
15:43:52:Adding folding slot 00: READY gpu:0:GP102 [TITAN Xp] 12150
15:43:52:Removing old file 'configs/config-20190125-165923.xml'
15:43:53:Saving configuration to config.xml
15:43:53:<config>
15:43:53: <!-- Folding Slot Configuration -->
15:43:53: <cause v='PARKINSONS'/>
15:43:53: <gpu v='true'/>
15:43:53:
15:43:53: <!-- Network -->
15:43:53: <proxy v=':8080'/>
15:43:53:
15:43:53: <!-- User Information -->
15:43:53: <passkey v='********************************'/>
15:43:53: <team v='230319'/>
15:43:53: <user v='osxtra'/>
15:43:53:
15:43:53: <!-- Folding Slots -->
15:43:53: <slot id='0' type='GPU'/>
15:43:53:</config>
15:43:53:WU00:FS00:Connecting to 65.254.110.245:8080
15:43:53:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
15:43:53:WU00:FS00:Connecting to 18.218.241.186:80
15:43:54:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
15:43:54:ERROR:WU00:FS00:Exception: Could not get an assignment
15:43:54:WU00:FS00:Connecting to 65.254.110.245:8080
15:43:54:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
15:43:54:WU00:FS00:Connecting to 18.218.241.186:80
15:43:55:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
15:43:55:ERROR:WU00:FS00:Exception: Could not get an assignment
15:43:55:WU01:FS01:0xa7:Folding@home Core Shutdown: INTERRUPTED
15:43:55:WU01:FS01:FahCore returned: INTERRUPTED (102 = 0x66)
15:43:55:WARNING:WU01:Slot ID 1 no longer exists and there are no other matching slots, dumping
15:43:55:WU01:Sending unit results: id:01 state:SEND error:DUMPED project:14116 run:29 clone:19 gen:23 core:0xa7 unit:0x0000001e0002894c5b8400a8124bd8c7
15:43:55:WU01:Connecting to 155.247.166.220:8080
15:43:56:WU01:Server responded WORK_ACK (400)
15:43:56:WU01:Cleaning up
15:44:54:WU00:FS00:Connecting to 65.254.110.245:8080
15:44:54:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
15:44:54:WU00:FS00:Connecting to 18.218.241.186:80
15:44:55:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
15:44:55:ERROR:WU00:FS00:Exception: Could not get an assignment
15:46:31:WU00:FS00:Connecting to 65.254.110.245:8080
15:46:32:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
15:46:32:WU00:FS00:Connecting to 18.218.241.186:80
15:46:32:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
15:46:32:ERROR:WU00:FS00:Exception: Could not get an assignment
15:49:08:WU00:FS00:Connecting to 65.254.110.245:8080
15:49:09:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
15:49:09:WU00:FS00:Connecting to 18.218.241.186:80
15:49:09:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
15:49:09:ERROR:WU00:FS00:Exception: Could not get an assignment
15:53:23:WU00:FS00:Connecting to 65.254.110.245:8080
15:53:23:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
15:53:23:WU00:FS00:Connecting to 18.218.241.186:80
15:53:24:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
15:53:24:ERROR:WU00:FS00:Exception: Could not get an assignment
16:00:14:WU00:FS00:Connecting to 65.254.110.245:8080
16:00:14:WARNING:WU00:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration
16:00:14:WU00:FS00:Connecting to 18.218.241.186:80
16:00:15:WARNING:WU00:FS00:Failed to get assignment from '18.218.241.186:80': No WUs available for this configuration
16:00:15:ERROR:WU00:FS00:Exception: Could not get an assignment