Page 1 of 1
How to make both CPU and GPU work on the same work unit?
Posted: Sat Feb 11, 2023 7:47 am
by vahid.rakhshan
Is it possible to set the client to use
both my CPU and GPU to process the same work unit? If different cores of a CPU can be altogether assigned the same work unit, I think it will be possible to also add the GPU to the whole complex and use them all for processing one work unit at a time. But I could not find a way to do that. Perhaps this might be done by configuring client folding slots in the Advanced Control?
I am asking this because my GPU work units keep expiring unfinished (at percentages below 10%). So all its processing power is going to waste. It would be much better if my GPU could help the CPU, instead of working on a separate work unit that keeps expiring.
Re: How to make both CPU and GPU work on the same work unit?
Posted: Sat Feb 11, 2023 3:27 pm
by Joe_H
Using the current folding cores this is not possible. A future folding core might support this, but balancing the resources which are different between CPU and GPU will not be easy.
Re: How to make both CPU and GPU work on the same work unit?
Posted: Sat Feb 11, 2023 8:25 pm
by toTOW
Until this possibility eventually appears, it would be better to disable your GPU slot.
Re: How to make both CPU and GPU work on the same work unit?
Posted: Sun Feb 12, 2023 9:53 am
by vahid.rakhshan
Disabled it, thanks. Hope this feature gets implemented in the future.
Re: How to make both CPU and GPU work on the same work unit?
Posted: Mon Feb 13, 2023 4:36 am
by vahid.rakhshan
I keep removing the GPU slot; but every time I close the core and re-open it (for example, after each computer restart), the GPU slot is back there and active! Is there a way to remove it permanently?
Re: How to make both CPU and GPU work on the same work unit?
Posted: Mon Feb 13, 2023 9:23 am
by calxalot
In FAHControl > Configure > Expert > Extra client options, add
gpu false
Re: How to make both CPU and GPU work on the same work unit?
Posted: Mon Feb 13, 2023 9:54 am
by vahid.rakhshan
calxalot wrote: ↑Mon Feb 13, 2023 9:23 am
In FAHControl > Configure > Expert > Extra client options, add gpu false
Thanks. Can you give me a link to a page with a list of all the Expert options?
Re: How to make both CPU and GPU work on the same work unit?
Posted: Mon Feb 13, 2023 10:39 am
by calxalot
I don't have a link. Someone else might.
Interesting options include
next-unit-percentage 100
pause-on-start true
You can see tons of options with
But most options are actually internal things you should NOT change.
Re: How to make both CPU and GPU work on the same work unit?
Posted: Mon Feb 13, 2023 3:06 pm
by vahid.rakhshan
calxalot wrote: ↑Mon Feb 13, 2023 10:39 am
I don't have a link. Someone else might.
Interesting options include
next-unit-percentage 100
pause-on-start true
You can see tons of options with
But most options are actually internal things you should NOT change.
Many thanks for the nice info. For future reference, I am copying them below:
OPTIONS:
Code: Select all
--chdir <string>
Change directory before starting server. All files opened after this
point, such as the configuration file, must have paths relative to the new
directory.
--configure
Create a basic configuration file, then exit.
--dump <string>
Dump either 'all' or a specific work unit, identified by its queue ID,
then exit.
--finish
Finish all current work units, send the results, then exit.
--install-service
Install the application as a Win32 service then exit.
--lspci
List the PCI bus devices, which can be helpful for finding GPU vendor and
device IDs.
--queue-info
Print work unit queue then exit.
--send
Send all finished work units, then exit.
--send-command <string>
Send a command to an already running client.
--send-finish [string]
Finish a slot or all slots on an already running client.
--send-pause [string]
Pause a slot or all slots on an already running client.
--send-unpause [string]
Unpause a slot or all slots on an already running client.
--start-service
Start Win32 service then exit.
--stop-service
Stop Win32 service then exit.
--uninstall-service
Uninstall the application as a Win32 service then exit.
Configuration:
--config <string=config.xml>
Set configuration file.
--print
Print configuration and exit.
Informational:
--help [string]
Print help screen or help on a particular option and exit.
--html-help
Print help in HTML format and exit.
--info
Print application and system information and exit.
--license
License information and exit.
-q|--quiet
Set verbosity to zero.
-v|--verbose
Increase verbosity level.
--version
Print application version and exit.
Configuration options:
The following options can be specified in a configuration file or on the command
line using the following syntax:
--<option> <value>
or:
--<option>=<value>
or when marking boolean values true:
--<option>
Client Control:
client-threads <integer=6>
The number of client processing threads.
cycle-rate <double=4>
The maximum cycle frequency in Hz of client threads.
cycles <integer=-1>
Run at most this many cycles. A value less than zero means run indefinitely.
disable-sleep-when-active <boolean=true>
Attempt to keep the system from sleeping when folding, unless on battery.
exit-when-done <boolean=false>
Exit when all slots are paused.
fold-anon <boolean=false>
Start folding even if not configured.
open-web-control <boolean=false>
Make an operating system specific call to open the Web Control in a browser
once client is fully loaded
Configuration:
config-rotate <boolean=true>
Rotate the configuration file to a backup when saving would overwrite the
previous configuration.
config-rotate-dir <string=configs>
Put rotated configs in this directory.
config-rotate-max <integer=16>
The maximum number of rotated configuration files to keep. A value of zero
will keep all configuration file backups.
Error Handling:
max-slot-errors <integer=10>
The maximum number of errors before a slot is paused.
max-unit-errors <integer=5>
The maximum number of errors before a work unit is dumped.
Folding Core:
checkpoint <integer=15>
Tell cores to checkpoint at least every # minutes.
core-priority <string=idle>
Set the core priority. Valid values are: idle or low
cpu-usage <integer=100>
The maximum percentage of the CPU a core should use. Not implemented by all
cores.
gpu-usage <integer=100>
GPU usage as a percent from 10-100
no-assembly <boolean=false>
Tell cores to disable optimized assembly code.
Folding Slot Configuration:
cause <string=ANY>
The cause you prefer to support.
client-subtype <string=STDCLI>
The client subtype
client-type <string=normal>
The client type. Can be 'normal', 'advanced' or 'beta'.
cpu-species <string=X86_PENTIUM_II>
CPU species.
cpu-type <string=AMD64>
CPU type.
cpus <integer=-1>
How many CPUs a slot should use. <= 0 will use all the CPUs detected in the
system.
cuda-index <integer>
CUDA device index
disable-viz <boolean=false>
Disable reading visualization data.
extra-core-args <string>
Pass extra arguments to the core.
gpu <boolean=true>
Enable or disable auto-confiugration of GPU slots, requires appropriate
hardware.
gpu-beta <boolean=false>
Enable beta GPUs
gpu-index <string>
The index of the GPU in the order detected by the operating system.
max-packet-size <string=normal>
Max size in bytes of a work unit packet. Can be small=5MiB, normal=25MiB,
big=500MiB or a number.
memory <string>
Override memory, in bytes, reported to Folding@home.
opencl-index <integer>
OpenCL device index
os-species <string=WIN_8>
Operating system species.
os-type <string=WIN32>
Operating system type.
pci-bus <string>
The GPUs PCI bus ID.
pci-slot <string>
The GPUs PCI slot ID.
project-key <integer=0>
Key for access to restricted testing projects.
smp <boolean=true>
Enable or disable auto-configuration of SMP slots, requires appropriate
hardware.
GUI:
gui-enabled <boolean=true>
Set to false to disable the GUI. A GUI is not currently supported on all
operating systems.
HTTP Server:
allow <string=127.0.0.1>
Client addresses which are allowed to connect to this server. This option
overrides IPs which are denied in the deny option. The pattern 0/0 matches
all addresses.
connection-timeout <integer=60>
The maximum amount of time, in seconds, a connection can be idle before
being dropped.
deny <string=0/0>
Client address which are not allowed to connect to this server.
http-addresses <string=0:7396>
A space separated list of server address and port pairs to listen on in the
form <ip | hostname>[:<port>]
https-addresses <string=>
A space separated list of secure server address and port pairs to listen on
in the form <ip | hostname>[:<port>]
max-connect-time <integer=900>
The maximum amount of time, in seconds, a client can be connected to the
server.
max-connections <integer=800>
Sets the maximum number of simultaneous connections.
max-request-length <integer=52428800>
Sets the maximum length of a client request packet.
min-connect-time <integer=300>
The minimum amount of time, in seconds, a client must be connected to the
server before it can be dropped in favor or a new connection.
HTTP Server SSL:
certificate-file <string>
The servers certificate file in PEM format.
crl-file <string>
Supply a Certificate Revocation List. Overrides any internal CRL
private-key-file <string>
The servers private key file in PEM format.
Logging:
log <string=log.txt>
Set log file.
log-color <boolean=false>
Print log messages with ANSI color coding.
log-crlf <boolean=true>
Print carriage return and line feed at end of log lines.
log-date <boolean=false>
Print date information with log entries.
log-date-periodically <integer=21600>
Print date to log before new log entries if so many seconds have passed
since the last date was printed.
log-domain <boolean=false>
Print domain information with log entries.
log-domain-levels <string ...>
Set log levels by domain. Format is:
<domain>[:i|d|t]:<level> ...
Entries are separated by white-space and or commas.
i - info
For example: server:i:3 module:6
Set 'server' domain info messages to level 3 and 'module' info messages to
level 6. All other domains will follow the system wide log verbosity level.
If <level> is negative it is relative to the system wide verbosity.
log-header <boolean=true>
Enable log message headers.
log-level <boolean=true>
Print level information with log entries.
log-no-info-header <boolean=true>
Don't print 'INFO(#):' in header.
log-redirect <boolean=false>
Redirect all output to log file. Implies !log-to-screen.
log-rotate <boolean=true>
Rotate log files on each run.
log-rotate-dir <string=logs>
Put rotated logs in this directory.
log-rotate-max <integer=16>
Maximum number of rotated logs to keep.
log-short-level <boolean=false>
Print shortened level information with log entries.
log-simple-domains <boolean=true>
Remove any leading directories and trailing file extensions from domains so
that source code file names can be easily used as log domains.
log-thread-id <boolean=false>
Print id with log entries.
log-thread-prefix <boolean=true>
Print thread prefixes, if set, with log entries.
log-time <boolean=true>
Print time information with log entries.
log-to-screen <boolean=true>
Log to screen.
log-truncate <boolean=false>
Truncate log file.
verbosity <integer=3>
Set logging level for INFO messages.
Network:
proxy <string=>
Set proxy for outgoing HTTP connections
proxy-enable <boolean=false>
Enable proxy configuration
proxy-pass <string=>
Set password for proxy connections
proxy-user <string=>
Set user name for proxy connections
Process Control:
child <boolean=false>
Disable 'daemon', 'fork', 'pid' and 'respawn' options. Also defaults
'log-to-screen' to false. Used internally.
daemon <boolean=false>
Short for --pid --service --respawn --log=''
pid <boolean=false>
Create PID file.
pid-file <string=FAHClient.pid>
Name of PID file.
priority <string>
Set the process priority. Valid values are: idle, low, normal, high or
realtime.
respawn <boolean=false>
Run the application as a child process and respawn if it is killed or exits.
service <boolean=false>
Ignore user logout or hangup and interrupt signals
Remote Command Server:
command-address <string=0.0.0.0>
The address to which the command server should be bound.
command-allow-no-pass <string=127.0.0.1>
IP address ranges that are allowed access to the command server with out a
password if the 'password' option is set. These addresses will also have to
be allowed IP based access.
command-deny-no-pass <string=0/0>
IP address ranges that are not allowed access to the command server with out
a password if the 'password' option is set. Overridden by
command-allow-no-pass
command-enable <boolean=true>
Set to false to disable the command server.
command-port <integer=36330>
The port to which the command server should be bound.
password <string>
Set a command server password. Warning, setting a password disables the
default IP address blocking.
Slot Control:
auto-conf <boolean=true>
Enable/disable auto configuration of folding slots.
idle <boolean=false>
Only run slot when idle.
max-shutdown-wait <integer=60>
The maximum amount of time to wait in seconds for a unit to exit on
shutdown.
pause-on-battery <boolean=true>
Pause the client or slot when the OS indicates the machine is running on
battery power.
pause-on-start <boolean=false>
If true the slot will be started in a paused state.
paused <boolean=false>
True if slot is paused.
power <string=light>
Set the client's power level. Valid values are 'light', 'medium' or 'full'.
This setting affects the defaults of several other options such as 'cpus',
'pause-on-battery', etc.
User Information:
machine-id <integer=0>
The machine ID.
passkey <string=>
Your passkey.
team <integer=0>
Your team number.
user <string=Anonymous>
Your user name.
Web Server:
web-allow <string=127.0.0.1>
Client addresses which are allowed to connect to this Web server. This
option overrides IPs which are denied in the web-deny option. This option
differs from the 'allow'/'deny' options in that clients that are not allowed
are served an access denied page rather than simply dropping the connection.
The value '0/0' matches all IPs.
web-deny <string=0/0>
Client address which are not allowed to connect to this Web server.
web-enable <boolean=true>
Set to false to disable the web server.
Web Server Sessions:
session-cookie <string=sid>
The name of the session cookie.
session-lifetime <integer=86400>
The maximum session lifetime in seconds. Zero for unlimited session
lifetime.
session-timeout <integer=3600>
The max maximum amount of time in seconds since the last time a session was
used before it timesout. Zero for no session timeout.
Windows Service:
service-description <string=FAHClient>
The description for the Windows service control manager.
service-restart <boolean=true>
Configure Windows service to automatically restart on failure.
service-restart-delay <integer=5000>
The amount of time in milliseconds to delay between restarts of the Windows
service.
Work Unit Control:
dump-after-deadline <boolean=true>
Dump units if their deadline has passed.
max-queue <integer=16>
Maximum units per slot in the work queue.
max-units <integer=0>
Process at most this number of units, then pause.
next-unit-percentage <integer=99>
Pre-download the next work unit when the current one is this far along.
Values less than 90 are not allowed.
stall-detection-enabled <boolean=false>
Attempt to detect stalled work units and restart them.
stall-percent <integer=5>
Minimum estimated percent work unit completion since last frame before a WU
can be considered stalled, if zero the percentage is ignored.
stall-timeout <integer=1800>
Minimum time, in seconds, since last frame before a WU can be considered
stalled.