PDA

View Full Version : Permanently assign a core to GPU2 client.


augie1111
09-08-09, 03:54 PM
I'm sorry folks, harlam posted this a while ago and I can't find it now after going to W7 RTM!:bang head I'll e-mail the code to myself and leave it on the server this time! ;) Help please?:cry: I'll stock the fridge today.:):beer: Thanks as always all.

ChasR
09-08-09, 04:06 PM
By default the first GPU client is "permanently" assigned to core 3. The second is assigned to core 2. If you remove the affinity lock, the gpu client will run one thread across all cpu cores. Using the environment variable NV_FAH_CPU_AFFINITY allows you to set all the FahCore_11 or 14 to run on the same processor, 2 processors or 3 processors. You can't use the environment variable to have one client run on one processor and another run on a different processor. I'm curious as to why you need to need to assign a gpu to a cpu core any differently than the current FAH settings allow?

augie1111
09-08-09, 05:59 PM
By default the first GPU client is "permanently" assigned to core 3. The second is assigned to core 2. If you remove the affinity lock, the gpu client will run one thread across all cpu cores. Using the environment variable NV_FAH_CPU_AFFINITY allows you to set all the FahCore_11 or 14 to run on the same processor, 2 processors or 3 processors. You can't use the environment variable to have one client run on one processor and another run on a different processor. I'm curious as to why you need to need to assign a gpu to a cpu core any differently than the current FAH settings allow?

Thanks for the response ChasR. What I found was that running a VMWare on cores 0-2 was that the second GPU2(core 2) instance production was hampered by the VM which was setup as idle I believe. I think I'm doing this right but I'm not sure anymore.

The code you posted above is the one I was looking for but now I'm not sure if that's what I really needed in the first place! Anyways, I'll install VMWare now, get the second GPU on core 3 and see what happens. IIRC, I should get 2K PPD on a stock Q6600 with one VM. Thank you very much! :soda:

ChasR
09-08-09, 06:25 PM
Maximum production on a Q6600 is attained by having 2 VMs, one on cores 0,1 and the other on 2,3. Both GPUs should have the affinity lock removed so that they can soak up idle cycles on all cores. Priority of the VMs should be idle and the GPU clients should be low (slightly higher in systray clients). Before GeForce 180.6 drivers you needed to lock the GPU to a core not being used by a VM, but since, the GPU uses so few cpu cycles that you waste a core running only GPU clients on it.

It should still be the same with a2 core v2.10, however the GPU client is going to have a bigger effect on the SMP client due to the SMP client now needing 100% cpu utilization to run efficiently.

Any way to set up the SMP client right on a C2Q, you need to locate the .vmx files in the Virtual Machines directory and add the following lines:

VM 1:

processor0.use="TRUE"
processor1.use="TRUE"
processor2.use="FALSE"
processor3.use="FALSE"

VM 2:

processor0.use="FALSE"
processor1.use="FALSE"
processor2.use="TRUE"
processor3.use="TRUE"

The most crucial edit relates to priority. Make sure ungrabbed priority is idle:

priority.ungrabbed = "idle"

That should maximize your ppd.

Edit: If you're only running one VM, this won't matter much but, i'd think performance would be pretty much the same on 0,1 as 0-2 and you wouldn't have to mess with anything but the VM affinity. You'd have so many idle cycles, you probably wouldn't need to set affinity on either client to have them run as fast as possible.

augie1111
09-08-09, 10:30 PM
Whoa ChasR! :eek: I'll have to put this project off until the morning as there's a lot to digest here.:) I'll report back back of course.;) Thank you.