Code: Select all
Work outside the WU time
Download the WU
If needed, download a new core
Start WU
Move WU from PC memory to Graphics card memory via PCIE Bus: CPU time, not GPU time
Load Core into Graphics card memory via PCIE bus: CPU time, not GPU time
Think about WU: GPU Time
Checkpoint
Move WU to CPU memory, call Disk I/O: CPU time, not GPU time
Think about WU: GPU Time
Save WU to PC memory: CPU time, not GPU time
Send WU back to server: not counted as WU time
F@H tries to overlap downloading and uploading to the server with WU time, but the CPU still loads and unloads the WU into graphics memory via the PCIE bus, and does the occasional Checkpoint.
So you never are going to get 100% GPU utilization, as some operations need the CPU and some are slowed by transferring data over the PCIE bus.
Additionally, some proteins will be smaller than the ideal number of shaders, so GPU utilization will not be 100% even when doing GPU work. This happens more often, the more shaders your card has.
(this is similar to, if your CPU has 32 cores but you are doing payroll for 24 employees, some cores may be idle. They will all be idle while you transfer data from/to disk)