Page 1 of 1

Granular control of GPU slots

Posted: Sat Jan 09, 2021 12:21 am
by ostieca
Hi there,

First time here, been folding since March 2020. I'm trying to add my work laptop (Lenovo P43s) to my current "farm" but I can't find a way to be able to let it fold at any half-decent rate. The problem being that both onboard GPUs (UHD Graphic 620 and Quadro P620) are sharing the same ridicule cooling system. I just added a Razer Core X eGPU with a RX 470 but I'm struggling -at least as much as the built-in GPU detection mechanism of the current Folding@home software it seems- to make the whole system to behave like it should. I need a way so that only the RX 470 and the CPU are used, but I failed so far. Deleting the two unwanted GPU slots isn't helping: 1. because it's to be done all over again after a reboot 2. because even if I deleted the iGPU in the Advanced Control, it is still showed in the Web Control page 3. Even if Web Control and Advanced Control show that it's folding on the RX 470, it's in fact folding on the iGPU based on Task Manager and GPU-Z monitoring data. Not hearing the fans speeding up on the RX 470 was the sign something was wrong. Disabling the iGPU in the BIOS is not an option as I need it for the laptop's monitor. I don't think pausing at the startup the two GPU slots will help as I have to toggle between Start and Pause multiple times a day.

Any way it can be done without having to wait for an update version of the software?

Re: Granular control of GPU slots

Posted: Sat Jan 09, 2021 6:28 am
by ajm
In Advanced Control (aka FAHControl), which you will find in the ^ menu of the taskbar ("Show hidden icons", on the right side of the taskbar, then click the molecule icon), you can set an option called pause-on-start = true for the GPUs slots (Configure -> Slots -> double-clic the GPU slot -> Add -> Name: pause-on-start; Value: true). Then those slots won't fold unless you specifically demand it (right click on the slot in Advanced Control, choose "Fold"). It should do the trick.

Re: Granular control of GPU slots

Posted: Sun Jan 10, 2021 10:26 pm
by ostieca
It indeed did the trick of giving individual control, thank you!

Alas, I still can't use it as F@h falsely believe folding on the eGPU while in fact, it's the iGPU that is doing the work (very poorly). Hopefully, I'll figure out how to work around this.

Re: Granular control of GPU slots

Posted: Sun Jan 10, 2021 10:38 pm
by Neil-B
Can you post your log inc top 100 lines or so showing what fsh thinks your kit is .. it might be something in the slot config

Re: Granular control of GPU slots

Posted: Tue Jan 12, 2021 3:21 am
by ostieca
There you go:

Code: Select all

*********************** Log Started 2021-01-10T22:30:02Z ***********************
22:30:02:******************************* libFAH ********************************
22:30:02:           Date: Oct 20 2020
22:30:02:           Time: 13:36:55
22:30:02:       Revision: 5ca109d295a6245e2a2f590b3d0085ad5e567aeb
22:30:02:         Branch: master
22:30:02:       Compiler: Visual C++ 2015
22:30:02:        Options: /TP /nologo /EHa /wd4297 /wd4103 /O2 /Zc:throwingNew /MT
22:30:02:       Platform: win32 10
22:30:02:           Bits: 32
22:30:02:           Mode: Release
22:30:02:****************************** FAHClient ******************************
22:30:02:        Version: 7.6.21
22:30:02:         Author: Joseph Coffland <joseph@cauldrondevelopment.com>
22:30:02:      Copyright: 2020 foldingathome.org
22:30:02:       Homepage: https://foldingathome.org/
22:30:02:           Date: Oct 20 2020
22:30:02:           Time: 13:41:04
22:30:02:       Revision: 6efbf0e138e22d3963e6a291f78dcb9c6422a278
22:30:02:         Branch: master
22:30:02:       Compiler: Visual C++ 2015
22:30:02:        Options: /TP /nologo /EHa /wd4297 /wd4103 /O2 /Zc:throwingNew /MT
22:30:02:       Platform: win32 10
22:30:02:           Bits: 32
22:30:02:           Mode: Release
22:30:02:         Config: C:\ProgramData\FAHClient\config.xml
22:30:02:******************************** CBang ********************************
22:30:02:           Date: Oct 20 2020
22:30:02:           Time: 11:36:18
22:30:02:       Revision: 7e4ce85225d7eaeb775e87c31740181ca603de60
22:30:02:         Branch: master
22:30:02:       Compiler: Visual C++ 2015
22:30:02:        Options: /TP /nologo /EHa /wd4297 /wd4103 /O2 /Zc:throwingNew /MT
22:30:02:       Platform: win32 10
22:30:02:           Bits: 32
22:30:02:           Mode: Release
22:30:02:******************************* System ********************************
22:30:02:            CPU: Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
22:30:02:         CPU ID: GenuineIntel Family 6 Model 142 Stepping 12
22:30:02:           CPUs: 8
22:30:02:         Memory: 15.72GiB
22:30:02:    Free Memory: 8.89GiB
22:30:02:        Threads: WINDOWS_THREADS
22:30:02:     OS Version: 6.2
22:30:02:    Has Battery: true
22:30:02:     On Battery: false
22:30:02:     UTC Offset: -5
22:30:02:            PID: 36532
22:30:02:            CWD: C:\ProgramData\FAHClient
22:30:02:  Win32 Service: false
22:30:02:             OS: Windows 10 Enterprise
22:30:02:        OS Arch: AMD64
22:30:02:           GPUs: 3
22:30:02:          GPU 0: Bus:0 Slot:2 Func:0 INTEL:1 WHL GT2 [UHD Graphics 620]
22:30:02:          GPU 1: Bus:60 Slot:0 Func:0 NVIDIA:5 GP108GLM [Quadro P520]
22:30:02:          GPU 2: Bus:7 Slot:0 Func:0 AMD:5 Ellesmere XT [Radeon RX
22:30:02:                 470/480/570/580/590]
22:30:02:  CUDA Device 0: Platform:0 Device:0 Bus:60 Slot:0 Compute:6.1 Driver:11.0
22:30:02:OpenCL Device 0: Platform:0 Device:0 Bus:60 Slot:0 Compute:1.2 Driver:452.56
22:30:02:OpenCL Device 1: Platform:1 Device:0 Bus:7 Slot:0 Compute:1.2 Driver:3188.4
22:30:02:OpenCL Device 2: Platform:2 Device:0 Bus:NA Slot:NA Compute:2.1 Driver:27.20
22:30:02:OpenCL Device 3: Platform:2 Device:1 Bus:NA Slot:NA Compute:2.1 Driver:27.20
22:30:02:***********************************************************************
22:30:02:<config>
22:30:02:  <!-- Folding Slot Configuration -->
22:30:02:  <cause v='HIGH_PRIORITY'/>
22:30:02:
22:30:02:  <!-- Network -->
22:30:02:  <proxy v=':8080'/>
22:30:02:
22:30:02:  <!-- Slot Control -->
22:30:02:  <power v='FULL'/>
22:30:02:
22:30:02:  <!-- User Information -->
22:30:02:  <passkey v='*****'/>
22:30:02:  <team v='198'/>
22:30:02:  <user v='Daniel_Trudeau'/>
22:30:02:
22:30:02:  <!-- Folding Slots -->
22:30:02:  <slot id='0' type='CPU'>
22:30:02:    <cpus v='6'/>
22:30:02:    <paused v='true'/>
22:30:02:  </slot>
22:30:02:  <slot id='1' type='GPU'>
22:30:02:    <pause-on-start v='true'/>
22:30:02:    <paused v='True'/>
22:30:02:    <pci-bus v='0'/>
22:30:02:    <pci-slot v='2'/>
22:30:02:  </slot>
22:30:02:  <slot id='2' type='GPU'>
22:30:02:    <pause-on-start v='true'/>
22:30:02:    <paused v='True'/>
22:30:02:    <pci-bus v='60'/>
22:30:02:    <pci-slot v='0'/>
22:30:02:  </slot>
22:30:02:  <slot id='3' type='GPU'>
22:30:02:    <pause-on-start v='true'/>
22:30:02:    <paused v='true'/>
22:30:02:    <pci-bus v='7'/>
22:30:02:    <pci-slot v='0'/>
22:30:02:  </slot>
22:30:02:</config>
22:30:02:Trying to access database...
22:30:02:Successfully acquired database lock
22:30:02:FS00:Initialized folding slot 00: cpu:6
22:30:02:WARNING:FS01:Guessing ambiguous GPU to OpenCL device mapping for 01: gpu:0:2 WHL GT2 [UHD Graphics 620].  Consider upgrading your graphics driver or manually setting ``opencl-index`` in this slot's configuration.
22:30:02:WARNING:FS01:Disabling beta GPU slot 01: gpu:0:2 WHL GT2 [UHD Graphics 620].  Beta GPUs can be tested for no points by setting ``gpu-beta=true`` in the configuration.
22:30:02:FS02:Initialized folding slot 02: gpu:60:0 GP108GLM [Quadro P520]
22:30:02:FS03:Initialized folding slot 03: gpu:7:0 Ellesmere XT [Radeon RX 470/480/570/580/590]
22:44:04:FS03:Unpaused
22:44:04:WU01:FS03:Starting
22:44:04:WU01:FS03:Running FahCore: "C:\Program Files (x86)\FAHClient/FAHCoreWrapper.exe" C:\ProgramData\FAHClient\cores/cores.foldingathome.org/win/64bit/22-0.0.13/Core_22.fah/FahCore_22.exe -dir 01 -suffix 01 -version 706 -lifeline 36532 -checkpoint 15 -opencl-platform 1 -opencl-device 0 -gpu-vendor amd -gpu 0 -gpu-usage 100

Re: Granular control of GPU slots

Posted: Tue Jan 12, 2021 4:05 am
by JimboPalmer
22:30:02: GPU 0: Bus:0 Slot:2 Func:0 INTEL:1 WHL GT2 [UHD Graphics 620]

22:30:02: <slot id='1' type='GPU'>
22:30:02: <pause-on-start v='true'/>
22:30:02: <paused v='True'/>
22:30:02: <pci-bus v='0'/>
22:30:02: <pci-slot v='2'/>
22:30:02: </slot>

Your Intel is configured as Bus 0 slot 2, but I think it should be slot id 0

22:30:02: GPU 1: Bus:60 Slot:0 Func:0 NVIDIA:5 GP108GLM [Quadro P520]

22:30:02: <slot id='2' type='GPU'>
22:30:02: <pause-on-start v='true'/>
22:30:02: <paused v='True'/>
22:30:02: <pci-bus v='60'/>
22:30:02: <pci-slot v='0'/>
22:30:02: </slot>

Your Nvidia is configured as Bus 60 slot 0, but I think it should be slot id 1

22:30:02: GPU 2: Bus:7 Slot:0 Func:0 AMD:5 Ellesmere XT [Radeon RX

22:30:02: <slot id='3' type='GPU'>
22:30:02: <pause-on-start v='true'/>
22:30:02: <paused v='true'/>
22:30:02: <pci-bus v='7'/>
22:30:02: <pci-slot v='0'/>
22:30:02: </slot>

Your Nvidia is configured as Bus 7 slot 0, but I think it should be slot id 2

If you copy down your user, team, and pass key and uninstall including data, and then reinstall, I find that it is more likely to correctly configure hardware.
In the past it has been difficult to make GPUs from different vendors fold at the same time.

Re: Granular control of GPU slots

Posted: Tue Jan 12, 2021 4:34 pm
by ostieca
I did a clean install and I'm getting the exact same result. Must be the way the laptop route data in the multi-GPU environment.

Re: Granular control of GPU slots

Posted: Tue Jan 12, 2021 5:02 pm
by JimboPalmer
ostieca wrote:the laptop
I missed that this was a laptop. Many laptops swap Intel and discrete GPUs based on the amount of graphics needed and battery life. That will add even more confusion to your quest.

Graphics adapter NVIDIA Quadro P520 - 2048 MB, Core: 1303-1493 MHz, Memory: 1500 MHz, GDDR5, 64-bit interface, Nvidia 431.94, Optimus https://www.notebookcheck.net/Lenovo-Th ... 972.0.html
https://www.nvidia.com/en-us/geforce/te ... echnology/

This means the Nvidia (in this case) and Intel GPU are never both active at once, and that the Nvidia GPU may not be available when the Work Unit starts.

I honestly recommend you stick to CPU folding, as the method of configuring the switching is not consistent.

Re: Granular control of GPU slots

Posted: Tue Jan 12, 2021 5:29 pm
by ajm
I would ask Lenovo if they can come with a solution or a workaround. It strongly looks like a bug in their system.

Re: Granular control of GPU slots

Posted: Tue Jan 12, 2021 7:56 pm
by Neil-B
I regularly use (and have currently) both my Intel iGPU and the NVidia dGPU working fine (albeit on dell systems) both folding and quite happily running displays - cooling is an issue but actually dropping cpu slot and running both gpus has been manageable - the cpu folding was the worst heat culprit ... fairly sure it will be just a configuration issue might be bios (doubt) or NVidia Optimus/Intel Graphics settings (more likely) - I'll do a bit of research into Lenovo laptops ... there may be quite a challenge getting the eGPU to fold - not least because it is a mix and match between NVidia and AMD - I reckon it ought to be possible but it may be interesting.

What I am trying to say is "Don't give up" ... If you are up for it I'd go back to basics - firstly finish and pause the cpu slot to get it out of the way and stop it heating up to laptop - then get one of the two internal gpu slots running (the NVidia dGPU might be easiest) - once you have that working then worry about the Intel iGPU (flag may need to be set to get this working right iirc still beta) ... I'd leave the AMD eGPU to last ... but break it down into different bites - trying to resolve all at once may just be more trouble and take longer than doing one at a time.

The gpus will out perform the cpu - and with a laptop having heat problems drop the cpu first :)

Re: Granular control of GPU slots

Posted: Wed Jan 13, 2021 4:40 pm
by ostieca
Victory!

Had to go to Windows 10 Graphics settings, enable Hardware Acceleration, and tell Windows to run the following process on the eGPU:

FAHClient.exe
FAHCoreWrapper.exe
FahCore_22.exe

Thanks everyone for the support!

Re: Granular control of GPU slots

Posted: Wed Jan 13, 2021 4:53 pm
by Neil-B
Congratulations :) ... and Thanks for reporting back ... goood to know it is possible :)

Re: Granular control of GPU slots

Posted: Thu Jan 14, 2021 12:04 pm
by PantherX
Welcome to the F@H Forum ostieca,

Glad that you found a solution and thanks for sharing! Just wanted to point out that while most GPU WUs are using FahCore_22, you might get some WUs from FahCore_21 so if you see any failures in your log regarding FahCore_21, you may want to update that list.