GPU not available?

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5850
Credit: 110029842756
RAC: 22441385

RE: ... the first three

Quote:
... the first three BRP6-opencl-ati tasks came in. The first one is running at this moment.


The Pitcairn series GPU you are using can be quite productive if you run multiple concurrent tasks and provide some appropriate amount of CPU support for those tasks. You talk about the "first one" running so I'm guessing you are running a single GPU task and also 4 CPU tasks on the quad core CPU. In other words, the GPU performance is probably suffering because all CPU cores are fully loaded with CPU tasks.

I have a lot of HD 7850 GPUs and typically I run 4 concurrent GPU tasks. 4 tasks will complete in around 18,000 secs so that means a completed task every 4,500 secs on average. Your currently completed tasks seem to be averaging around 14,000 secs but that's only approximate. There is however a lot of output improvement to be had by running multiple tasks.

The project preferences on the website have a GPU utilization factor which you can set to allow more than one concurrent task. I suggest you set that factor to 0.5 which will allow the running of two concurrent tasks and will automatically prevent one of your 4 CPU cores from crunching and so be available for instant GPU support when needed. This should give a very nice performance boost.

As you have another host with an AMD GPU, it would also start crunching two GPU tasks unless you put it in a different 'location' or 'venue' with different preferences. It would be worthwhile seeing if the second machine might also benefit by running two concurrent tasks. I suspect it might. If you decide not to run two tasks on the second machine, you would need to make use of the 'locations' mechanism.

There is another alternative method for controlling the two hosts separately without setting up 'locations'. It involves creating a configuration file called app_config.xml. It's the method I use and it's very convenient for creating individual preference sets for a range of different hosts. If you're willing to try this file, I can give you instructions.

Cheers,
Gary.

Herman van Kempen
Herman van Kempen
Joined: 21 May 09
Posts: 18
Credit: 378416251
RAC: 0

You are right Gary, I had

You are right Gary, I had running one single GPU task and at the same time four CPU tasks. I followed your advice and set in the E@H preferences the GPU utilization factor for BRP apps from 1 to 0.5
In the Computer preferences was already chosen to use at most 75% of the CPU's

In this new situation the Linux host shows an improvement: is now crunching 2 GPU tasks and 3 CPU tasks at the same time:
1 (0,5 CPU + 1 AMD/ATI GPU)task running BRPS Parkes opencl-ati
1 (0,5 CPU + 0,5 AMD/ATI GPU)task running BRPS Parkes opencl-ati
3 CPU tasks running Gravitational Wave Search O all sky F 1.04

As far as I can see at this moment nothing changed at the Windows host. At the same time now:
1 (0,5 CPU + 1 AMD/ATI GPU)task running BRPS Parkes opencl-ati
3 CPU tasks running Gravitational Wave Search O all sky I 1.04

It is very good of you that you can give some information about creating a configuration file for setting preferences. I'm looking forward to your instructions.

Thank you very much for helping me to improve the crunching-efficiency of my hosts.
Kind regards,
Herman

Herman van Kempen
Herman van Kempen
Joined: 21 May 09
Posts: 18
Credit: 378416251
RAC: 0

Hallo Gary, Life changed:

Hallo Gary,

Life changed: the Windows host now also works on 2 CPU tasks and 2 GPU tasks at the same time:

1 (0,5 CPUs + 0,5 AMD/ATI GPUs)task running BRPS Parkes opencl-ati
1 (0,5 CPUs + 1 AMD/ATI GPU) task running BRPS Parkes opencl-ati

2 CPU tasks running

I shall observe the behaviour for a while.

Cheers,
Herman

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5850
Credit: 110029842756
RAC: 22441385

Some points about what you

Some points about what you are seeing.

1. When you set or edit the value of the GPU utilization factor, nothing changes on any of your hosts until at least one new GPU task is downloaded after any change to this setting on the website. The change is then applied to all existing tasks in your work cache.

2. From the results so far on the Linux machine, you seem to be getting a substantial improvement in GPU task output. It will take a lot longer to see the benefit on the Windows machine. GPU tasks were taking around 42,000 secs. As long as the new time for 2x is less than 84,000 secs, you will be gaining. You will have to wait for some results to be returned to know for sure.

3. Because you have limited BOINC to using 3 cores (presumably for both the Linux and the Windows hosts) the running of 2 GPU tasks will prevent a further CPU core from participating in crunching a CPU task. This means that only 2 out of the 4 cores will be running CPU tasks. The choice is yours but you don't need two 'free' cores for GPU support duties. Maybe there are other reasons which cause you to limit available CPU cores. Even with HT on the i3, one virtual core is enough to support 2 GPU tasks.

4. If you use a suitable app_config.xml file in the Einstein project directory, you can avoid the need to download a new task in order to propagate any change to the GPU utilization factor. In fact, the values in the local file will over-ride the values that are set on the website and those values will be irrelevant. With this local file you can edit the values whenever you like and use the 're-read config files' menu item in BOINC Manager to make the change instantly.

For running 2 GPU tasks on AMD GPUs, here is a suitable file to use:-

  
    einsteinbinary_BRP6
    
      0.5
      0.5
    
  

If you want to use this, just use the 'quote' reply function and copy and paste everything inside the opening and closing 'code' tags into your favourite plain text editor. Save the file as 'app_config.xml' and place a copy of it in the Einstein project directory on whichever machine you want to use it on. Then just 're-read config files' through BOINC Manager to make the change happen.

If you wanted to try 3 GPU tasks, you would just edit to be 0.33. This would still only cause one core to be kept 'free' (on top of whatever other limitations you have already imposed).

If you wanted to have 2 'free' CPU cores whilst running 3x on the GPU, you could also change to be 0.67. Since 3x0.67 is 2.01, then 2 extra CPU cores would be prevented from running CPU tasks.

If anything in the above is not clear, please ask.

Cheers,
Gary.

Herman van Kempen
Herman van Kempen
Joined: 21 May 09
Posts: 18
Credit: 378416251
RAC: 0

RE: Some points about what

Quote:

Some points about what you are seeing.

3. Because you have limited BOINC to using 3 cores (presumably for both the Linux and the Windows hosts) the running of 2 GPU tasks will prevent a further CPU core from participating in crunching a CPU task. This means that only 2 out of the 4 cores will be running CPU tasks. The choice is yours but you don't need two 'free' cores for GPU support duties. Maybe there are other reasons which cause you to limit available CPU cores. Even with HT on the i3, one virtual core is enough to support 2 GPU tasks.

When I started running GPU tasks on the Windows machine in 2012 using Boinc version 7.028 x64 I had problems in the beginning (see thread 119782 in the Problems and Bug Reports forum). I followed Ageless' advice to change the "Use atmost ..% of the CPUs" from 100 to 75% setting in my Computer preferences. So one core reserved to feed the GPU, and this worked good.
Is something changed in newer Boinc versions in the way how CPU cores are allocated to the GPU(s),e.g. with the GPU Utilization setting, and is that the reason that I can set "Use atmost ..% of the CPUs" back to 100% ?
I'm not quite sure how this works.

Thanks a lot for your feedback and for the app_config.xml file. At first I'll have a look how my hosts behave the coming days, and after that I'll start working with that file.

Kind regard,
Herman

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5850
Credit: 110029842756
RAC: 22441385

RE: When I started running

Quote:
When I started running GPU tasks on the Windows machine in 2012 using Boinc version 7.028 x64 I had problems in the beginning (see thread 119782 in the Problems and Bug Reports forum). I followed Ageless' advice to change the "Use atmost ..% of the CPUs" from 100 to 75% setting in my Computer preferences. So one core reserved to feed the GPU, and this worked good.


That was good advice at the time because AMD GPUs suffer in performance if all CPU cores have a full crunching load. A couple of things have changed since then. The GPU app is improved and less of the calculations are done on the CPU. The bandwidth requirements have been significantly reduced so that the communications bottleneck between CPU and GPU is much reduced. However, there is still some penalty when running a single task on an AMD GPU if all CPU cores are also fully loaded. For AMD GPUs, the best way to counteract this is to run 2 concurrent GPU tasks which will automatically prevent one CPU core from being utilized by BOINC for running a CPU task. This is set by the project. You could change it by using the parameters in an app_config.xml file but you don't need to in your case.

My advice is to allow BOINC to use 100% of the CPU cores and run 2 GPU tasks to get the automatic reduction of 4 to 3 CPU cores running CPU tasks. At the time Ageless gave you his advice, there probably wasn't a "GPU utilization factor" available in the project preferences. I don't remember exactly when it was introduced.

Now that both your hosts have had some time running GPU tasks '2x', you can see the benefits by looking at results on the website. Firstly, for BRP6 tasks on your Windows machine, you can see the results on or before April 11 were taking around 42 ksecs on average. The more recent tasks (done 2x) are taking around 74ksecs so you are completing two tasks concurrently in about 3 hours less than what it used to take to complete two tasks consecutively. So the 2x is definitely beneficial for increasing the output.

For your Linux machine, the oldest three tasks in the full BRP6 tasks list were done 1x and took around 14 ksecs per task. You'll need to click through to the third page to actually see them. You have lots of recent tasks done at 2x with fairly stable crunch times of around 11.2 ksecs. This has been a very big improvement - about 5.6 ksecs per tasks instead of the original ~14 ksecs. From my experience, you should get a further overall improvement by going to 3x or even 4x.

You wouldn't want to change what your Windows machine is doing. I don't believe there would be any improvement by going from 2x to 3x on that GPU. So the easiest way to get the best out of both machines would be to put them in different 'locations' or 'venues' with different utilization factors or alternatively, to set each one up with its own app_config.xml file. For the Windows machine running 2x, just use = 0.5 and = 0.5 as shown in the previous example I posted. For the Linux machine, use = 0.33 and = 0.5. In both cases, set BOINC to use 100% of the CPU cores.

The two settings I've suggested would run 2 GPU tasks plus 3 CPU tasks on the Windows machine and 3 GPU tasks plus 3 CPU tasks on the Linux machine. Because the Linux machine has a more powerful (non-HT) CPU, I'm confident that only one CPU core will be needed to support the 3 GPU tasks. I know this because I'm actually running 4 GPU tasks and 3 CPU tasks on an older quad core i5 with a 7850 GPU and one free core is proving quite sufficient.

You just need to create the two app_config.xml files with a plain text editor and place the correct one in the Einstein project directory of each host. Then in BOINC Manager, change your preferences to allow BOINC to use 100% of CPU cores and then use 'Advanced/Read config files' menu entry to trigger the re-reading of the new app_config.xml files. In the event log, you can check that BOINC has found the new file and acted on the contents. For BOINC to find the file it needs to be in the project directory and it needs to be called exactly app_config.xml.

Cheers,
Gary.

AgentB
AgentB
Joined: 17 Mar 12
Posts: 915
Credit: 513211304
RAC: 0

RE: For your Linux machine,

Quote:
For your Linux machine, the oldest three tasks in the full BRP6 tasks list were done 1x and took around 14 ksecs per task. You'll need to click through to the third page to actually see them. You have lots of recent tasks done at 2x with fairly stable crunch times of around 11.2 ksecs. This has been a very big improvement - about 5.6 ksecs per tasks instead of the original ~14 ksecs. From my experience, you should get a further overall improvement by going to 3x or even 4x.

It is a delicate balancing act, i have an i5-4690K working hard to drive a HD7990 (dual GPU) and running 3x is optimal (6 tasks), and at that point all four CPU cores are running about 50%.

This might suggest i have some headroom to run a CPU task, but i find even a single CPU task, causes the GPU tasks to slow, and the reward from a CPU task completed does not balance the drop in GPU performance. So the CPU just feeds the GPU on that host - other hosts and GPUs the balance varies.

I guess the morale of the story is adjust, let it run to a stable state, measure, repeat until find your sweet spot!

Herman van Kempen
Herman van Kempen
Joined: 21 May 09
Posts: 18
Credit: 378416251
RAC: 0

I have changed the CPU and

I have changed the CPU and GPU settings on the two hosts as you adviced, and I am well-pleased with the now situation, which is as follows:
Windows host: 3 CPU tasks and 2 GPU tasks running at same time
Linux host: 3 CPU tasks and 3 GPU tasks running at same time

After a short observation period I'll possibly try some fine-tuning with the app_config, keeping AgentB's remark in mind.
Thank you very much for your helping hand.

Kind regards,
Herman

poppageek
poppageek
Joined: 13 Aug 10
Posts: 259
Credit: 2473733122
RAC: 0

Moving a PC from Vista to

Moving a PC from Vista to Linux Mint 17.3 with 2 AMD 7870 this thread helped get the GPUs recognized. They worked fine until reboot. "no usable GPUs found" once again. Boinc is in video group, tried restarting boinc from command line. NADA.

Still Googling for possible fixes. Any further ideas?

Boinc 7.6.31
Linux Mint 17.3
AMD flgrx 15.2 installed from Drivers app.

Will post if I find a fix.

Thanks

EDIT: OK guess driver is 14.4 according to Drivers app. CCC says 15.2

poppageek
poppageek
Joined: 13 Aug 10
Posts: 259
Credit: 2473733122
RAC: 0

xhost local:boinc worked.

xhost local:boinc

worked. both crunching again.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.