Optimized CPU apps with regular GPU apps - Linux

Message boards : Number crunching : Optimized CPU apps with regular GPU apps - Linux
Message board moderation

To post messages, you must log in.

AuthorMessage
Loren Datlof

Send message
Joined: 24 Jan 14
Posts: 73
Credit: 19,576,879
RAC: 47,957
United States
Message 1993000 - Posted: 7 May 2019, 18:14:34 UTC

I tried to setup the optimized CPU apps on a PC with an Intel Core i5-2500 CPU @ 3.30GHz CPU. (OS is Ubuntu 18.04) The CPU is capable of running sse2, avx & sse4_2 apps. I setup the app_info.xml and got no errors the first time but I noticed that the setiathome_ a 8.01_x86_64-pc-linux-gnu__cuda60 app file disappeared (probably along with others) from the project folder and the GPU doesn't run any WUs even though they are recognized in the event log.

I also noticed that if restarted boinc that the MBv8 sse4_2 (not its real name) app file would disappear too.

So my questions are:


    1. Can I run both the Optimized CPU apps and the regular GPU apps at the same time?
    2. Is it just a matter of adding the GPU apps to the app_info.xml file?



Here is the app_info.xml I am working with

<app_info>
    <app>
      <name>setiathome_v8</name>
    </app>
    <file_info>
      <name>MBv8_8.04r3306_sse42_linux64</name>
      <executable/>
    </file_info>
    <app_version>
      <app_name>setiathome_v8</app_name>
      <version_num>804</version_num>
      <platform>x86_64-pc-linux-gnu</platform>
      <cmdline></cmdline>
      <file_ref>
        <file_name>MBv8_8.04r3306_sse42_linux64</file_name>
        <main_program/>
      </file_ref>
    </app_version>
    <file_info>
      <name>MBv8_8.05r3345_avx_linux64</name>
      <executable/>
    </file_info>
    <app_version>
      <app_name>setiathome_v8</app_name>
      <version_num>804</version_num>
      <platform>x86_64-pc-linux-gnu</platform>
      <cmdline></cmdline>
      <file_ref>
        <file_name>MBv8_8.05r3345_avx_linux64</file_name>
        <main_program/>
      </file_ref>
    </app_version>
    <app_version>
      <app_name>setiathome_v8</app_name>
      <version_num>805</version_num>
      <platform>x86_64-pc-linux-gnu</platform>
      <cmdline></cmdline>
      <file_ref>
        <file_name>MBv8_8.05r3345_avx_linux64</file_name>
        <main_program/>
      </file_ref>
    </app_version>
    <app>
        <name>astropulse_v7</name>
    </app>
    <file_info>
        <name>ap_7.05r2728_avx_linux64</name>
        <executable/>
    </file_info>
    <app_version>
        <app_name>astropulse_v7</app_name>
        <version_num>705</version_num>
        <platform>x86_64-pc-linux-gnu</platform>
        <plan_class></plan_class>
        <cmdline></cmdline>
        <file_ref>
            <file_name>ap_7.05r2728_avx_linux64</file_name>
            <main_program/>
        </file_ref>
    </app_version>
    <app>
        <name>astropulse_v7</name>
    </app>
    <file_info>
        <name>ap_7.04r2696_sse2_linux64</name>
        <executable/>
    </file_info>
    <app_version>
        <app_name>astropulse_v7</app_name>
        <version_num>704</version_num>
        <platform>x86_64-pc-linux-gnu</platform>
        <plan_class>sse2</plan_class>
        <file_ref>
            <file_name>ap_7.04r2696_sse2_linux64</file_name>
            <main_program/>
        </file_ref>
    </app_version>
</app_info>


Thanks.
ID: 1993000 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 13114
Credit: 148,231,176
RAC: 179,860
United Kingdom
Message 1993011 - Posted: 7 May 2019, 19:27:29 UTC - in response to Message 1993000.  
Last modified: 7 May 2019, 19:28:39 UTC

You can only run WITH app_info.xml or WITHOUT app_info.xml - you can't have some apps with and some apps without.

So your solution (2) is the way to go: add the Linux GPU apps to your app_info.

The easiest way to do this is to park your CPU app_info somewhere out of the way, and revert to regular (we call them 'stock') GPU apps - but with a minimal cache setting, you only need one or two.

Once the server has allocated you a GPU app, you will download all the files you need. You will also find file definitions and an <app_version> section have been added to your client_state.xml file. They will be very close to the format you need to add to the CPU app_info you've already got: that's the quickest way to get the structure right.

Remember that you need to supply a copy of every file referenced for every type of app you want to run. The easiest way is to keep an offline reference folder where you write app_info.xml, and keep a reference copy of every file you need. Then, copy the whole shebang into the project folder when you're ready to test.

If it goes wrong, you'll still have the offline copy to proofread and bugfix.
ID: 1993011 · Report as offensive
Profile Wiggo "Democratic Socialist"
Avatar

Send message
Joined: 24 Jan 00
Posts: 16686
Credit: 225,768,809
RAC: 164,471
Australia
Message 1993015 - Posted: 7 May 2019, 20:25:20 UTC

If this is the rig with the dual Quadro 410's then forget it.

Not to mention not having enough VRAM they're also Kepler based and you need at least a Maxwell based part. ;-)

Cheers.
ID: 1993015 · Report as offensive
Loren Datlof

Send message
Joined: 24 Jan 14
Posts: 73
Credit: 19,576,879
RAC: 47,957
United States
Message 1993021 - Posted: 7 May 2019, 21:09:03 UTC - in response to Message 1993015.  
Last modified: 7 May 2019, 21:09:31 UTC

Yes this the PC with dual quadro 410s. The GPUs are running right now and crunching WUs but not with any special sauce just the stock GPU apps. I want use the optimized CPU apps with the stock GPU apps. According to Richard Haselgrove it is possible by adding the stock GPU apps to the app_info.xml file. I am just having a little trouble finding the right format to accomplish this.

I have been able to run the optimized CPU apps on PCs without any usable GPUs. I am just wondering if it possible to run the optimized CPU apps on PCs with GPUs that can't run the special sauce.
ID: 1993021 · Report as offensive
TBar
Volunteer tester

Send message
Joined: 22 May 99
Posts: 4800
Credit: 548,185,022
RAC: 1,265,238
United States
Message 1993026 - Posted: 7 May 2019, 21:38:38 UTC - in response to Message 1993021.  

Why don't you try the NV App at Lunatics instead of the Stock GPU App? It already has a sample of the GPU part of the app_info included, you just have to piece it together with the CPU & AP Apps. BTW, your app_info has TWO different CPU App sections and doesn't even have a GPU App section, you should only have ONE CPU section, the 3345 one. When I tested the NV GPU OpenCL Multibeam v8 SoG (r3602) App it seemed to work fine and was faster than the stock App.
http://lunatics.kwsn.info/index.php?action=downloads;cat=48
NV GPU OpenCL Multibeam v8 SoG (r3602)
ID: 1993026 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 13114
Credit: 148,231,176
RAC: 179,860
United Kingdom
Message 1993028 - Posted: 7 May 2019, 21:39:58 UTC - in response to Message 1993021.  

It can certainly be done, and it's easier if you can crib from the stock <app_version> block.

Make sure you have the manual for Anonymous platform beside you as you work.
ID: 1993028 · Report as offensive
Profile Keith Myers Special Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 29 Apr 01
Posts: 9596
Credit: 881,759,639
RAC: 1,756,363
United States
Message 1993029 - Posted: 7 May 2019, 21:42:55 UTC - in response to Message 1993021.  
Last modified: 7 May 2019, 21:50:38 UTC

You need to look in your client_state.xml for the CUDA60 gpu app. It is is going to be declared in an app_version section that looks like this only with the plan_class being defined as CUDA60 and of course the app_name is going to be x41zi something or other. I would use the Find function in Text Editor to locate the CUDA60 instances in the app_version sections. With the correct name and the change in plan_class you should be able to craft a app_info with both the optimized cpu app and the stock gpu app once you save it out of the BOINC Seti projects folder and then put it back in after you have crafted a successful app_info.

From client_state.xml

<app_version>
    <app_name>setiathome_v8</app_name>
    <version_num>801</version_num>
    <platform>x86_64-pc-linux-gnu</platform>
    <avg_ncpus>1.000000</avg_ncpus>
    <flops>59025822854.365631</flops>
    <plan_class>cuda90</plan_class>
    <cmdline>-nobs</cmdline>
    <file_ref>
        <file_name>setiathome_x41p_V0.98b1_x86_64-pc-linux-gnu_cuda101</file_name>
        <main_program/>
    </file_ref>
    <coproc>
        <type>NVIDIA</type>
        <count>1.000000</count>
    </coproc>
    <dont_throttle/>
</app_version>


The app_info is going to have almost the same exact information that is in client_state with the section for the cpu app in there along with the sections for the AP apps too.

This is an example from my app_info with my special sauce app.

  <app>
     <name>setiathome_v8</name>
  </app>
    <file_info>
      <name>setiathome_x41p_V0.98b1_x86_64-pc-linux-gnu_cuda101</name>
      <executable/>
    </file_info>
    <app_version>
      <app_name>setiathome_v8</app_name>
      <platform>x86_64-pc-linux-gnu</platform>
      <version_num>801</version_num>
      <plan_class>cuda90</plan_class>
      <cmdline></cmdline>
      <coproc>
        <type>NVIDIA</type>
        <count>1</count>
      </coproc>
      <avg_ncpus>0.1</avg_ncpus>
      <max_ncpus>0.1</max_ncpus>
      <file_ref>
         <file_name>setiathome_x41p_V0.98b1_x86_64-pc-linux-gnu_cuda101</file_name>
          <main_program/>
      </file_ref>
    </app_version>


[Edit] I would go with TBar's suggestion as easiest.
Seti@Home classic workunits:20,676 CPU time:74,226 hours
ID: 1993029 · Report as offensive
Loren Datlof

Send message
Joined: 24 Jan 14
Posts: 73
Credit: 19,576,879
RAC: 47,957
United States
Message 1993036 - Posted: 7 May 2019, 23:16:59 UTC

Success!! I went with TBar's suggestion and Keith Myers' advice and I am up and running the NV App at Lunatics and the Optimized CPU apps.

To answer TBar's question as to why I didn't try the NV app was because I was confused between CUDA and OpenCL. The CUDA apps only work with a GPU with a CC of 3.2 (CUDA60) The Quadro 410 has a CC of 3.0. I didn't realize that OpenCL has its own standards and only requires GPUs with a CC of 2.0.

All is good now. Thanks everyone who participated in this thread.
ID: 1993036 · Report as offensive

Message boards : Number crunching : Optimized CPU apps with regular GPU apps - Linux


 
©2019 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.