GPU detection and config issues on some multiple GPU systems still aren't fixed.
I started with an issue where the client could not correctly identify which card was what. It would somehow fold on the GTX 260 while the GTX 570 was selected and vice-versa. I found help on the forums about setting the indices and I was able to correct the config to be able to fold on the correct GPU (included in the walkthrough below). The problem I'm having now is that the GPU index ALWAYS reverts back to -1 every time I restart the client for any reason wiping out any I've tried manually editing the config file, but it just overwrites what I do as soon as folding starts. And I'm using 7.4.4 if that makes any difference.
THE SOLUTION THAT WORKED FOR ME
Note: This may not work for you, or may need some modification to work for you, if you have AMD GPUs, Mixed AMD & NVidia GPUs, or certain OpenCL Drivers. This is not a guaranteed 'one-size-fits-all' solution but a guide that may give you alternative you have not tried. We will continue to update the guide as new information is presented in an effort to assist as many as possible. Thank you.
WALKTHROUGH
1. Make sure to do a clean removal and re-install first to see if this will fix the issue. If not proceed to step 2.
2. Install and/or open GPU-Z and make a note of the order of the GPUs in the drop down list at the bottom, 0 for the first GPU, 1 for the second and so on; this can be 'List A'
GPU-Z, for "List A". GTX 570 will be 0, and the 260 will be 1
3. Use command prompt (Start button, 'cmd' in the search bar and press enter) to run C:\Program Files (x86)\FAHClient\fachclient.exe --lspci and note the order the GPUs come up on this list; 'List B'
C:\Program Files (x86)\FAHClient\fachclient.exe --lspci
- Code: Select all
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Family>cd\
C:\>cd program files (x86)
C:\Program Files (x86)>cd fahclient
C:\Program Files (x86)\FAHClient>fahclient.exe --lspci
VendorID:DeviceID:Vendor Name:Description
0x104c:0x8023:Texas Instruments:Texas Instruments 1394 OHCI Compliant Host Contr
oller
0x1095:0x3114:Silicon Image, Inc.:Silicon Image SiI 3114 SoftRaid 5 Controller
0x10de:0x0360:NVIDIA Corporation:PCI standard ISA bridge
0x10de:0x0368:NVIDIA Corporation:NVIDIA nForce PCI System Management
0x10de:0x0369:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x036c:NVIDIA Corporation:Standard OpenHCD USB Host Controller
0x10de:0x036d:NVIDIA Corporation:Standard Enhanced PCI to USB Host Controller
0x10de:0x036e:NVIDIA Corporation:Standard Dual Channel PCI IDE Controller
0x10de:0x0370:NVIDIA Corporation:PCI standard PCI-to-PCI bridge
0x10de:0x0371:NVIDIA Corporation:High Definition Audio Controller
0x10de:0x0373:NVIDIA Corporation:NVIDIA nForce Networking Controller
0x10de:0x0373:NVIDIA Corporation:NVIDIA nForce Networking Controller
0x10de:0x0376:NVIDIA Corporation:PCI Express standard Root Port
0x10de:0x037f:NVIDIA Corporation:NVIDIA nForce Serial ATA Controller
0x10de:0x037f:NVIDIA Corporation:NVIDIA nForce Serial ATA Controller
0x10de:0x037f:NVIDIA Corporation:NVIDIA nForce Serial ATA Controller
0x10de:0x03a1:NVIDIA Corporation:PCI standard host CPU bridge
0x10de:0x03a8:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03a9:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03aa:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03ab:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03ac:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03ad:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03ae:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03af:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b0:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b1:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b2:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b3:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b4:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b5:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b6:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03b7:NVIDIA Corporation:PCI Express standard Root Port
0x10de:0x03ba:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x03bc:NVIDIA Corporation:PCI standard RAM Controller
0x10de:0x05b1:NVIDIA Corporation:PCI Express standard Downstream Switch Port
0x10de:0x05b1:NVIDIA Corporation:PCI Express standard Downstream Switch Port
0x10de:0x05b1:NVIDIA Corporation:PCI Express standard Downstream Switch Port
0x10de:0x05e2:NVIDIA Corporation:GT200 [GeForce GTX 260]
0x10de:0x0e09:NVIDIA Corporation:High Definition Audio Controller
0x10de:0x1081:NVIDIA Corporation:GF110 [GeForce GTX 570]
C:\Program Files (x86)\FAHClient>
0x10de:0x05e2:NVIDIA Corporation:GT200 [GeForce GTX 260]
0x10de:0x0e09:NVIDIA Corporation:High Definition Audio Controller
0x10de:0x1081:NVIDIA Corporation:GF110 [GeForce GTX 570]
This is what you're looking for, and this will be "List B". In this case, the 260 will be 0 and the 570 will be 1
4. Open F@H Client and clear all the automatically assigned slots for the GPUs
5. Create new GPU slots and set the each GPU index according to "list B', and the core indices according to 'list A'. Do this for all GPUs present
Ex. gpu-index = 0, CUDA-index = 1, OpenCL-index = 1 will fold on GTX 260
6. For any GPU you DO NOT want to fold, under 'Extra Slot Options' add Name: paused Value: true
7. Save your configuration then quit and restart your client to verify that config has been saved properly.
After you set up the GPU configs correctly, the config file should look something like this
- Code: Select all
23:37:52:<config>
23:37:52: <!-- Network -->
23:37:52: <proxy v=':8080'/>
23:37:52:
23:37:52: <!-- Slot Control -->
23:37:52: <power v='full'/>
23:37:52:
23:37:52: <!-- User Information -->
23:37:52: <passkey v='********************************'/>
23:37:52: <team v='37726'/>
23:37:52: <user v='DownshiftArtist'/>
23:37:52:
23:37:52: <!-- Folding Slots -->
23:37:52: <slot id='0' type='GPU'>
23:37:52: <cuda-index v='1'/>
23:37:52: <gpu-index v='0'/>
23:37:52: <opencl-index v='1'/>
23:37:52: <paused v='true'/>
23:37:52: </slot>
23:37:52: <slot id='2' type='GPU'>
23:37:52: <client-type v='beta'/>
23:37:52: <cuda-index v='0'/>
23:37:52: <gpu-index v='1'/>
23:37:52: <opencl-index v='0'/>
23:37:52: </slot>
23:37:52:</config>
edit: NOTE: Your slot id may be different as it is based on whatever number your client assigns to it.
8. Clear any left over WUs if they are any (which, if done correctly there shouldn't be) and FOLD!!
Added 5/23/14:
heikosch wrote: ... my experience with a 2 and a 3 GPU system is that FAHControl simply lists the GPUs inside out.
When I manually assign the first GPU the openl-index/cuda-index 2, the second GPU openl-index/cuda-index 1 and the third GPU openl-index/cuda-index 0 everything is correct.
In a 2 GPU system the assignment for the first GPU with openl-index/cuda-index 1 and for the second GPU with openl-index/cuda-index 0 solves the problem.
Heiko
