Is there any way that I can customise the load on CPU/GPU?
Moderators: Site Moderators, FAHC Science Team
Is there any way that I can customise the load on CPU/GPU?
Hi, I am a newbie who has gotten interested in folding just mere hours ago. For the purpose of heat management, is there any way that I can customise the load on my CPU/GPU? Specifically, I would like to put my CPU on low load and GPU on high load.
-
- Site Admin
- Posts: 8002
- Joined: Tue Apr 21, 2009 4:41 pm
- Hardware configuration: Mac Studio M1 Max 32 GB smp6
Mac Hack i7-7700K 48 GB smp4 - Location: W. MA
Re: Is there any way that I can customise the load on CPU/GP
Yes, using the FAHControl utility individual settings can be set for each folding slot. For instance, the CPU can be shutdown completely or limited to different number of cores utilized than the power control settings would use. Have you read the installations guide and the software FAQ's? Those can give you some ideas on what settings are available to you. Ask here for clarification or advice on whether changes from the defaults will work.
Re: Is there any way that I can customise the load on CPU/GP
ok I looked over the FAQs and install instructions.
I come away with a setting "power v" as a directive for a slot's folding power.
how exactly do I use that directive and if it goes in configure->slots or configure->expert is lost on me.
so I basically have the same question, how do I set my two GPUs to different folding power than the CPU?
and I got the directive "power v" from the log file.
I guess the correct way is to use configure->slots and then edit to change "GPU Index" from -1 to desired value with the number 0 being off, the number 1 being 10%, and the number 10 being 100%.
maybe I am wrong but I don't want to destroy my video cards experimenting with values that are incorrect.
I come away with a setting "power v" as a directive for a slot's folding power.
how exactly do I use that directive and if it goes in configure->slots or configure->expert is lost on me.
so I basically have the same question, how do I set my two GPUs to different folding power than the CPU?
and I got the directive "power v" from the log file.
I guess the correct way is to use configure->slots and then edit to change "GPU Index" from -1 to desired value with the number 0 being off, the number 1 being 10%, and the number 10 being 100%.
maybe I am wrong but I don't want to destroy my video cards experimenting with values that are incorrect.
-
- Posts: 1576
- Joined: Tue May 28, 2013 12:14 pm
- Location: Tokyo
Re: Is there any way that I can customise the load on CPU/GP
To my understanding you can't really control the power used by the GPU. It's full or not. Others will correct me if I'm wrong (there is a good chance). Don't play with those index setings for GPU, OpenCL or CUDA. That's for special cased and not to tweak the performance as you want.
What you could do is underclocking the GPU to make it slower by 3rd part tools; but be carefully. Maybe less risk compared to overclocking but stability might also impacted.
The power setting works only for CPU by reducing the HT/Core assigned to folding.
What you could do is underclocking the GPU to make it slower by 3rd part tools; but be carefully. Maybe less risk compared to overclocking but stability might also impacted.
The power setting works only for CPU by reducing the HT/Core assigned to folding.
Re: Is there any way that I can customise the load on CPU/GP
hmm...
I don't know what to say really other than I hope I am understanding what the "GPU Index" setting is, and that being an adjustment of folding power to that slot.
I am preparing to go from 2 video cards to 4 and in my idle time using card 3 and 4 to fold, I guess they can be used a full if there is no way to throttle them full usage to a lower value and one thing in favor of using them full is they don't have any monitors attached.
I was crashing my system using my cards 1 and 2 to render animations and when I wasn't running animations I would use them to fold but my system would freeze and I would have to reboot via reset button on the case.
maybe there is a way to throttle GPU usage from full to a lesser value?
I don't know what to say really other than I hope I am understanding what the "GPU Index" setting is, and that being an adjustment of folding power to that slot.
I am preparing to go from 2 video cards to 4 and in my idle time using card 3 and 4 to fold, I guess they can be used a full if there is no way to throttle them full usage to a lower value and one thing in favor of using them full is they don't have any monitors attached.
I was crashing my system using my cards 1 and 2 to render animations and when I wasn't running animations I would use them to fold but my system would freeze and I would have to reboot via reset button on the case.
maybe there is a way to throttle GPU usage from full to a lesser value?
-
- Posts: 10179
- Joined: Thu Nov 29, 2007 4:30 pm
- Hardware configuration: Intel i7-4770K @ 4.5 GHz, 16 GB DDR3-2133 Corsair Vengence (black/red), EVGA GTX 760 @ 1200 MHz, on an Asus Maximus VI Hero MB (black/red), in a blacked out Antec P280 Tower, with a Xigmatek Night Hawk (black) HSF, Seasonic 760w Platinum (black case, sleeves, wires), 4 SilenX 120mm Case fans with silicon fan gaskets and silicon mounts (all black), a 512GB Samsung SSD (black), and a 2TB Black Western Digital HD (silver/black).
- Location: Arizona
- Contact:
Re: Is there any way that I can customise the load on CPU/GP
That is not what GPU INDEX does.
Set the GPU to fold while the PC is Idle. Then you can render as much as you want. When the screen powers down after being idle, folding on the GPUs will begin. It will stop again when you use the mouse or keyboard.
Code: Select all
Usage: fahclient [[--config] <filename>] [OPTIONS]...
Command line options:
--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.
--config <string=config.xml>
Set configuration file.
--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.
--help [string]
Print help screen or help on a particular option and exit.
--info
Print application and system information and exit.
--install-service
Install the application as a Win32 service then exit.
--license
License information and exit.
--lifeline <integer>
The application will watch for this process ID and exit if it goes away.
Usually the calling process' PID.
--lspci
List the PCI bus devices, which can be helpful for finding GPU vendor and
device IDs.
--print
Print configuration and exit.
--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.
-v
Increase verbosity level.
--version
Print application version and exit.
-v
Increase verbosity level.
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> service-description <string=Folding@home Client>
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.
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.
data-directory <string=.>
The directory, relative to the current directory, where WU data and cores
are stored.
disable-sleep-when-active <boolean=true>
Attempt to keep the system from sleeping when folding, unless on battery.
exec-directory <string=C:\Program Files (x86)\FAHClient>
The directory, relative to the current executable, where executables and
dynamic libraries are located.
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-dir <string=cores>
The directory to store core files in.
core-prep <string>
Run this command on cores after they are downloaded. This option is useful
for running Linux cores on BSD machines.
core-priority <string=idle>
Set the core priority. Valid values are: idle or low
cpu-affinity <boolean=false>
If true, try to lock core processes to a fixed CPU
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 <string>
The CUDA device index of the GPU, counting starts from 0.
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-index <string>
The index of the GPU as detected by the client. This index corresponds
directly to the GPUs listed in the client's '--info' output.
max-packet-size <string=normal>
Max size in bytes of a work unit packet. Can be small=5MB, normal=10MB,
big=500MB or a number.
memory <string>
Override memory, in bytes, reported to Folding@home.
opencl-index <string>
The OpenCL device index of the GPU, counting starts from 0.
os-species <string=UNKNOWN>
Operating system species.
os-type <string=WIN32>
Operating system type.
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.
threads <integer=8>
Sets the number of server threads.
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-debug <boolean=true>
Disable or enable debugging info.
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
d - debug
For example: server:i:3 module:6
Set 'server' domain info messages to level 3 and 'module' info and debug
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 and DEBUG 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=Folding@home Client.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. Overriden 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.
eval <string>
Evaluate the argument as a script.
password <string>
Set a command server password. Warning, setting a password disables the
default IP address blocking.
script <string>
Run commands from a script file.
Slot Control:
idle <boolean=false>
Only run slot when idle.
max-shutdown-wait <integer=60>
The maxumum 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 of client is paused.
power <string=medium>
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.
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.
How to provide enough information to get helpful support
Tell me and I forget. Teach me and I remember. Involve me and I learn.
Tell me and I forget. Teach me and I remember. Involve me and I learn.
Re: Is there any way that I can customise the load on CPU/GP
this is the setting I am talking about.


-
- Posts: 1094
- Joined: Wed Nov 05, 2008 3:19 pm
- Location: Cambridge, UK
Re: Is there any way that I can customise the load on CPU/GP
GPU-INDEX DOES NOT AFFECT FOLDING POWER. I am at least the third person to tell you that, and the documentation has been copied here. Please do not persist in your misunderstanding of this option, which if set wrongly will break your configuration.
Re: Is there any way that I can customise the load on CPU/GP
ok, davidcoton, that is pretty blunt and I understand.
so what option needs to be set to fold a CPU slot at 50% and a GPU at 30%, for instance?
so what option needs to be set to fold a CPU slot at 50% and a GPU at 30%, for instance?
-
- Posts: 1094
- Joined: Wed Nov 05, 2008 3:19 pm
- Location: Cambridge, UK
Re: Is there any way that I can customise the load on CPU/GP
You cannot adjust the load on the GPU. The current low-level (manufacturer/OS) software does not support it.
The CPU load can be adjusted by setting the number of CPU cores assigned to the CPU slot. From your total number of cores available, subtract one for each GPU (though it is not clear if a CPU core shared between two or more GPUs results in significantly lower GPU performance). If you want to do CPU tasks while folding is active, subtract one or more further cores (this is not strictly necessary since CPU folding runs at low priority and will make way for your work). Assign trhe rest in the Advanced Control Slot Configuration.
Load can also be adjusted using the "Folding Power" slider, which changes core usage and when folding happens. See the online FAQs.
The CPU load can be adjusted by setting the number of CPU cores assigned to the CPU slot. From your total number of cores available, subtract one for each GPU (though it is not clear if a CPU core shared between two or more GPUs results in significantly lower GPU performance). If you want to do CPU tasks while folding is active, subtract one or more further cores (this is not strictly necessary since CPU folding runs at low priority and will make way for your work). Assign trhe rest in the Advanced Control Slot Configuration.
Load can also be adjusted using the "Folding Power" slider, which changes core usage and when folding happens. See the online FAQs.
Re: Is there any way that I can customise the load on CPU/GP
There is nothing that can adjust your gpu to 30%.
Your OS manages tasks for your CPU, and many revisions happened before %CPU, became controllable. The GPU has no operating system so it runs at 100% whenever the CPU gives it something to do and then waits.
Your OS manages tasks for your CPU, and many revisions happened before %CPU, became controllable. The GPU has no operating system so it runs at 100% whenever the CPU gives it something to do and then waits.
Posting FAH's log:
How to provide enough info to get helpful support.
How to provide enough info to get helpful support.
Re: Is there any way that I can customise the load on CPU/GP
okay, thanks for the clarification bruce it is much appreciated.
-
- Posts: 177
- Joined: Tue Aug 26, 2014 9:48 pm
- Hardware configuration: 10 SMP folding slots on Intel Phi "Knights Landing" system, configured as 24 CPUs/slot
9 AMD GPU folding slots
31 Nvidia GPU folding slots
50 total folding slots
Average PPD/slot = 459,500 - Location: Dallas, TX
Re: Is there any way that I can customise the load on CPU/GP
Bruce and others are correct, when a GPU is given an assignment, it runs unthrottled at 100% until it finishes the job. A solution you might find acceptable for heat and noise is to simply redefine what 100% is in units of MHz by underclocking the GPU using 3rd party tools like Afterburner (http://event.msi.com/vga/afterburner/download.htm). Depending on the type of GPU you have, Afterburner will allow you to underclock by a few hundred MHz both the GPU core clock and the memory clock, while also allowing you to undervolt the GPU. I dramatically underclock and undervolt one of my rigs in my office during the day by 500MHz and voltage by ~20%. When I go home for the evening, I load a profile that allows the GPU to operate at manufacturer specs until the next morning. You'll likely get the results you expect (less heat and noise) and the GPU will run at about 50% of rated speed when completing a work unit. While not proven unequivocally, I have not had any GPU stability issues when underclocking Nvidia GPUs (EVGA branded 680, 690, 780ti) by that amount
Hardware config viewtopic.php?f=66&t=17997&p=277235#p277235
-
- Posts: 10179
- Joined: Thu Nov 29, 2007 4:30 pm
- Hardware configuration: Intel i7-4770K @ 4.5 GHz, 16 GB DDR3-2133 Corsair Vengence (black/red), EVGA GTX 760 @ 1200 MHz, on an Asus Maximus VI Hero MB (black/red), in a blacked out Antec P280 Tower, with a Xigmatek Night Hawk (black) HSF, Seasonic 760w Platinum (black case, sleeves, wires), 4 SilenX 120mm Case fans with silicon fan gaskets and silicon mounts (all black), a 512GB Samsung SSD (black), and a 2TB Black Western Digital HD (silver/black).
- Location: Arizona
- Contact:
Re: Is there any way that I can customise the load on CPU/GP
In addition to under clocking the GPU, you can also data starve the GPU. We all know you should reserve one CPU to feed data to the GPU for best folding performance. However, if you fold on all cores of the CPU, the data is fed to the GPU less often and the gpu runs slower. The results are mixed and varied depending on your hardware.
How to provide enough information to get helpful support
Tell me and I forget. Teach me and I remember. Involve me and I learn.
Tell me and I forget. Teach me and I remember. Involve me and I learn.