Page 2 of 2

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jun 26, 2014 10:04 pm
by Ghetto_Child
Sorry guys, I have already tried testing alternating GPUs with folding load and leaving the other "idle". I even tried removing alternate GPUs too. None of this had any difference in effect, except GPU0 makes a high-pitch whistle/whine noise when active and GPU1 doesn't seem to do this. On this particular card, the two DVI-D ports are on "GPU B" according to the driver, and the single HDMI port is on "GPU A". My monitor is connected to a DVI-D port. I don't have any other displays plugged to the other ports. I will point out that in the NVIDIA Control Panel I have Multi-GPU enabled as that is the default setting for maximum 3D performance according to the driver.

I just discovered a peculiar phenomenon, while I have the local "Advanced Control" open, I decided to see what the "Web Control" would display so I opened that in Chrome. I tried playing with the GPU slot settings from the "Web Control" view and the GPU activated and folded without any lag at all. I then added the 2nd GPU slot in Advanced Control and it too folded without lag. There was zero noticeable lag as long as the "Web Control" was open; when I changed the page to another website the lag started to come back. Right now as I'm posting to the FoldingForum there is no noticeable lag but GPU1 slot has failed and F@H client has removed its WU.

EDIT: During editing/typing a post on this forum the lag goes away but the lag fully returns after submitting the post and just viewing the forum/thread/other posts.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jun 26, 2014 11:11 pm
by P5-133XL
Many browsers now use GPU acceleration creating lag while folding...

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jun 26, 2014 11:17 pm
by PantherX
Ghetto_Child wrote:...I will point out that in the NVIDIA Control Panel I have Multi-GPU enabled as that is the default setting for maximum 3D performance according to the driver...
Do note that if the GPU is used only for folding, then you can disable the SLI mode. The reason is that F@H doesn't use SLI so you can try that and see if it help you out or not.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Sat Jun 28, 2014 5:36 am
by Ghetto_Child
My folding test results, (how do I make this a serif font like courrier?).
So I've discovered that when I have both GPUs actively folding there is no screen lag regardless of settings but if I have 1 of either cores folding depending on my driver settings I will experience heavy screen lag. I assume this phenomenon is normal?

Code: Select all

MULTI-GPU		PHYSX		DEDICATED		LAG
=========================================================
enabled			cpu			n/a			gpu0&1, none when both folding
enabled			gtx295b		no			gpu0&1, none when both folding
enabled			gtx295a		no			gpu0&1, none when both folding
enabled			auto			n/a			gpu0&1, none when both folding
auto-disabled	gtx295b		yes			gpu1, none when both folding
auto-disabled	gtx295a		yes			gpu0, none when both folding
user-disabled	auto			n/a			gpu0, none when both folding
user-disabled	gtx295a		yes			gpu0, none when both folding
user-disabled	gtx295b		yes			gpu0, none when both folding
user-disabled	cpu			n/a			gpu0, none when both folding
user-disabled	gtx295b		no			gpu0, none when both folding
user-disabled	gtx295a		no			gpu0, none when both folding

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Sat Jun 28, 2014 12:38 pm
by JimF
Ghetto_Child wrote:So I've discovered that when I have both GPUs actively folding there is no screen lag regardless of settings but if I have 1 of either cores folding depending on my driver settings I will experience heavy screen lag. I assume this phenomenon is normal?
I noticed that a couple of years ago on my GTX 660s and probably commented on it then, though why it should be so I have no idea.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Sun Jun 29, 2014 6:42 pm
by Ghetto_Child
I know my following questions are about other programs but if anyone has helpful opinions I'd appreciate, I am asking here as it could be related to my other issues I previously posted.

I looked at my GTX 295 details in GPU Shark. What confuses me is the details for GPU1 and GPU2 each state and I quote "GPU: 2 x GT200". Which implies to me that I have four GPUs installed in my system. I only have a single graphics card with internal SLi inside it; strange.

Anyway what I could really use an opinion on is the "NVIDIA - GPU Memory Info" menu item in GPU Shark. It reports to me the following details:
OpenGL - GPU Memory Information - NVIDIA
- Dedicated Video Memory: 896MB
- Total Available Memory: 896MB
- Current Available Memory: 770MB
- Eviction Count: 397
- Evicted Memory: 912MB

So this GTX 295 being two cards joined into 1, its supposed to have 1792MB of memory. Why is it only detecting the memory of just 1 side of this card (1 of the 2 GPUs)? I do have PhysX & Multi-GPU enabled and working because I see the SLi indicator when I run the fullscreen FurMark test.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Sun Jun 29, 2014 7:49 pm
by bruce
It's important to recognize that modern GPUs have features which are used to display data on your screen(s), features that support PhysX, and features which are used by both. (For the most part, FAH uses the same features used by PhysX.) The size of video memory isn't particularly important to FAH (although it can be important to the video subsystem if you run multiple monitors at high resolutions.)

NV's SLI and AMD's XF were invented mostly because Microsoft sends all data to your display(s) through a single interface. Thus if you want screen updates to benefit from using a second GPU, that single interface must be able to use processing resources on that second GPU. The interconnecting link is a two-way connection allowing the screen drivers to access either GPU and use the combined resourses available through that interface.

Physically, the video memory is configured as two independent blocks and each half is directly accessible by a single GPU. The people who write sales information are not lying when they claim you have a total of 1792 MB, just misleading you ever so slightly.

FAH doesn't work the same way as your video subsystem, however. While the SLI interconnection is fine for data destined for your screen, it's too slow for FAH to use effectively. FAH is much more efficient by addressing each GPU through its own dedicated interface.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Sun Jun 29, 2014 9:48 pm
by PantherX
Ghetto_Child wrote:...What confuses me is the details for GPU1 and GPU2 each state and I quote "GPU: 2 x GT200". Which implies to me that I have four GPUs installed in my system. I only have a single graphics card with internal SLi inside it; strange...
Please note that GT200 is the Codename of the GPU architecture used by the GPU (https://en.wikipedia.org/wiki/GeForce_200_series). Thus 2 x GT200 simply means that you have two GPUs based on the GT200 architecture.
Ghetto_Child wrote:...So this GTX 295 being two cards joined into 1, its supposed to have 1792MB of memory. Why is it only detecting the memory of just 1 side of this card (1 of the 2 GPUs)? I do have PhysX & Multi-GPU enabled and working because I see the SLi indicator when I run the fullscreen FurMark test.
Do note that in SLI (or even CF/CFX), the amount of VRAM used is limited to the lowest VRAM that the GPU can access. In other words, for you, the amount of VRAM used is only 896 MB and not 1792 MB since each GPU works on its own VRAM by having the entire scene/data loaded in it. The VRAMs aren't shared across the GPUs (https://forums.geforce.com/default/topi ... gb-or-2gb-).

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jul 31, 2014 4:28 pm
by Ghetto_Child
JimF wrote:
Ghetto_Child wrote:So I've discovered that when I have both GPUs actively folding there is no screen lag regardless of settings but if I have 1 of either cores folding depending on my driver settings I will experience heavy screen lag. I assume this phenomenon is normal?
I noticed that a couple of years ago on my GTX 660s and probably commented on it then, though why it should be so I have no idea.
I just remembered I'm using these GPUs on a motherboard that only has single channel mode for system ram; this may be why I have lag in the first place. However, I think there is a way to control the amount of screen lag. I have been running a GPU Lucas-Lehmer Primality test program called CUDALucas v2.05Beta. It uses CUDA 6.0 with cards Compute Compatibility 1.3 and higher. There is a parameter in its CUDALucas.ini file called "Polite" and "PoliteValue".
CUDALucas.ini v2.05Beta wrote: # Polite is related to the -polite option. If Polite=1, and PoliteValue=10 e.g.
# at every 10th iteration all work queued up on the gpu is allowed to finish
# before any new work is scheduled. This gives the gpu a (very short) rest.
# Set Polite=0 to turn off completely. Polite!=0 will incur a slight performance
# drop, but the screen should be more responsive. Trade responsiveness for
# performance. (Note: Polite=0 is known to cause CUDALucas to use some extra CPU
# time; Polite=50 or higher is a good compromise.)

Polite=1
PoliteValue=5
on my GTX 295, I set each GPU to politevalue=5 to get useable responsiveness. I can change the value to a smaller number to make it more responsive or set it to a larger number to increase the CUDALucas performance. What parameter and value range should I set in F@H Control v7.4.4:
Configure->Slots->Edit button->Extra slot options (Expert only)
or
Configure->Expert->Extra client/core options

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jul 31, 2014 5:35 pm
by bruce
In the early days of FAH for GPUs, (Think FahCore_11) development was concerned about FAH being too polite. If FAH creates a block of work and enqueues it on the PCIe bus, the GPU can't start computing until the data is transferred. If it then waits for the results before preparing the next block of work, the GPU produces MUCH less than the theoretical throughput, being idle most of the time, waiting for work. To improve performance, more than one block of work needs to be in-flight at the same time so that it's working on one block while the next one is transferring.

In the intervening years, drivers have been improved and that's no longer 100% true, but it's it's not untrue, either. If you're running windows and want a better overview, you might read-up on WDDM.

That's also a simple-minded perspective, considering only FAH's throughput. In the real world, FAH still equeues blocks of work to be transferred, processed, and returned, but so does your OS, drawing windows on the screen, and Netflix, asking your GPU to decode a Video, (etc.) and it would be really nice if the screen-redraw block of work could jump ahead of FAH's blocks of work. Unfortunately, as you can see from the description of polite, the only real way to get work from the OS to the front of the line is to stop putting new work in the queue until the queue empties itself, and that reduces CUDA performance {a little/a lot}. Moreover, the time required to empty the queue depends os the time required to process whatever is in queue, which depends both on the speed of your GPU and the amount of processing included in each block.

With two GPUs, there's always a better chance that one queue is shorter than the other.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jul 31, 2014 10:45 pm
by Ghetto_Child
I appreciate the detailed explanation, it's very informative and the language is easy to understand, thank you (BTW you say FahCore_11 is the early days but my GPUs are using that core).

However I'm still left thinking there is a way to set an acceptable amount of "Politeness". CUDALucas runs in a command prompt box, the politevalue setting effects screen lag for the entire system not just the program's window. F@H's screen lag also effects the entire system not just the F@H control window. Since the lag makes the system almost unuseable I have to set the F@H GPU processors to idle only, which is unfortunate because I would be running 24/7 GPU processing if I could leave the idle value unset. Now set on idle, there's never anything being processed. A waste of two GPUs for F@H. CUDALucas and MFaktC are gaining all the benefits of this dual-GPU GTX 295.

Is there a parameter to set the GPU folding slots to light or medium (or a value between light & medium) without effecting the CPU folding slots? Something needs to be done. Both Full power and idle only are far too inefficient to use on my GPUs. Medium is not any different in cpu usuage than full but with the added hinderence of reducing the cpu folding slot power too. My PC is never really idle since I'm always running Prime95 (which allows for 10 levels of priority settings), and two instances of CUDALucas, and 1 instance of MFaktC all simultaneously.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Thu Jul 31, 2014 11:29 pm
by P5-133XL
If you set the GPU slot to run on idle, you should never see it running. Folding on idle runs only when there is a screensaver running or the display is turned off i.e. it only runs when you can not be affected by it. However, properly configured you should still see progress occurring over time, just not directly. You should not need to use fold on idle for the non-primary-display GPU. When using fold on idle it is better to set the display to power down in the Windows power settings than using a screensaver mainly because a screensaver uses GPU resources that could otherwise be used for folding.

There is a real problem with screen lag that does not seem to be solvable by PG alone. The video subsystem was never designed to share resources. Historically, the screen was the only use of the video subsystem so there was no reason to build in any capability for sharing. There is no current capability in the OS, driver system, or the HW to interrupt a GPU process nor a way to prioritize a GPU process. So when folding, the GPU is used fully but if you want to move a mouse, or a window, folding can't be interrupted or moved out of the way for something more important, so you everything has to wait till the current folding chunk is done before transferring control back to the OS producing lag.

That problem is not going to be fixed in the near future. It is going to have to be simultaneously addressed by HW, OS, and driver developers. It will probably happen at some point because of the advent of GPGPU but when is an unknowable.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Fri Aug 01, 2014 2:04 am
by Ghetto_Child
I've always had my screen saver set to blank with a 20 minute time out. I still have only once seen any progress in idle GPU folding and that was only when I was not running Prime95 or CUDALucas or MfaktC. Since I run those 3 other programs all the time, I doubt my system is ever "idle" for GPU folding. Unless F@H is waiting for my display to be idle, that could be a different matter.

Re: Driver 337.88 and 600 (and earlier) series GPUs

Posted: Fri Aug 01, 2014 3:11 am
by bruce
"In the early days of GPU folding" simply means (1) GPU folding is a relatively new use of technology, and (2) A few projects started using "early" methods are still running even though project started more recently use faster/newer hardware and the software to support them.

FAH has no "politeness" settings for GPUs (except to interrupt the GPU, as P5 said above). It's either on or it's off. This is the first that I've heard of CUDALucas. Perhaps it can provide that capability or we can test it out and write a HOW_TO for others to use.

Microsoft has recognized that the screen-lag problem exists and they have been developing something called WDDM. Over the next several years, sharing of GPU resources will improve, but it's still a rapidly developing field of technology. (I'm sure the Linux guys are paying attention to the same facts.)