New AVX512 application released


Message boards : News : New AVX512 application released

Message board moderation

To post messages, you must log in.
AuthorMessage
AquaBoy

Send message
Joined: 5 May 18
Posts: 5
Credit: 777,062
RAC: 1,566
Message 8322 - Posted: 27 Mar 2024, 10:29:26 UTC
- Where the AVX512 application for Linux (Anonymous platform by ahorek's team) can be downloaded?
- Should the contents of the "app_info.xml" for Linux look like that offered by Keith Myers?
ID: 8322 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
ahorek's team
Volunteer developer
Volunteer tester

Send message
Joined: 1 Jan 13
Posts: 66
Credit: 8,340,141
RAC: 56,778
Message 8323 - Posted: 27 Mar 2024, 13:49:55 UTC - in response to Message 8322.  
you can download avx512 apps from
https://asteroidsathome.net/boinc/download/period_search_10215_windows_x86_64__avx512_win10.exe
https://asteroidsathome.net/boinc/download/period_search_10215_x86_64-pc-linux-gnu__avx512_linux

ensure your CPU has avx512 support (like AMD Zen 4, Intel Ice Lake, Intel Sapphire Rapids etc.).
ID: 8323 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 16 Nov 22
Posts: 113
Credit: 91,685,405
RAC: 436,906
Message 8324 - Posted: 27 Mar 2024, 15:34:19 UTC - in response to Message 8322.  
The contents of the app_info.xml should be exactly the same as what I posted prior EXCEPT for the change to the application name in the file in the two places where the binary is defined.

You need to change the binary name to match the AVX-512 binary name in the file from my example.

For the Linux version, this is my app_info.xml

<app_info>

<app>
<name>period_search</name>
<user_friendly_name>Period Search Application</user_friendly_name>
<non_cpu_intensive>0</non_cpu_intensive>
</app>

<file>
<name>AST_period_search_10215_x86_64-pc-linux-gnu__avx512_linux</name>
<executable/>
</file>

<app_version>
<app_name>period_search</app_name>
<version_num>10215</version_num>
<platform>x86_64-pc-linux-gnu</platform>
<avg_ncpus>1.000000</avg_ncpus>
<plan_class>avx512_linux</plan_class>
<api_version>7.17.0</api_version>
<file_ref>
<file_name>AST_period_search_10215_x86_64-pc-linux-gnu__avx512_linux</file_name>
<main_program/>
</file_ref>
</app_version>

</app_info>

A proud member of the OFA (Old Farts Association)
ID: 8324 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
magic_sam

Send message
Joined: 16 Nov 22
Posts: 19
Credit: 7,481,025
RAC: 2,607
Message 8325 - Posted: 27 Mar 2024, 16:46:07 UTC

Last modified: 27 Mar 2024, 16:56:34 UTC
Dear all,

Still no luck on my end with AVX512 jobs and BOINC v8.0.0 alpha.

Just to be clear, I used to run AVX512 jobs before upgrading BOINC to v8.0.0 alpha, so I know my app_info file has to be correct.

When I upgraded the client, there were some jobs left in the cache and those were processed successfully.

Now that the cache is empty, the client just refuses to download any new Asteroids@home jobs.

@ahorek's team: the only message from the client is:

Not requesting tasks: don't need (CPU: account manager prefs).

What am I doing wrong ?

Best regards,

Samuel
ID: 8325 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 16 Nov 22
Posts: 113
Credit: 91,685,405
RAC: 436,906
Message 8326 - Posted: 27 Mar 2024, 17:54:36 UTC

Last modified: 27 Mar 2024, 17:55:26 UTC
Would set work_fetch_debug in the Event Log for more information about the client request to the scheduler and the scheduler's reply. The standard reply of no work to send is not much help here.

I'd guess that the new client code is having an unexpected result with the project server software.

I don't see any changes in the project preferences. I'd get rid of any API statement in the app_info. That and plan_class will be the things that will prevent the scheduler from thinking your host worthy of being sent tasks.

Post your app_info file so I can look at it.

A proud member of the OFA (Old Farts Association)
ID: 8326 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
magic_sam

Send message
Joined: 16 Nov 22
Posts: 19
Credit: 7,481,025
RAC: 2,607
Message 8327 - Posted: 27 Mar 2024, 18:09:19 UTC
@Keith: here's my app_info.xml file:
<app_info>
	<!--<project_max_concurrent>7</project_max_concurrent>-->
	<app>
		<name>period_search</name>
		<!--	<max_concurrent>7</max_concurrent>-->
		<user_friendly_name>Period Search Application</user_friendly_name>
	</app>
	<file_info>
		<name>period_search_10215_x86_64-pc-linux-gnu__avx512_linux</name>
		<executable/>
	</file_info>
	<app_version>
		<app_name>period_search</app_name>
		<version_num>10215</version_num>
		<platform>x86_64-pc-linux-gnu</platform>
		<api_version>7.17.0</api_version>
		<plan_class>avx512_linux</plan_class>
		<avg_ncpus>1.000000</avg_ncpus>
		<file_ref>
			<file_name>period_search_10215_x86_64-pc-linux-gnu__avx512_linux</file_name>
			<main_program/>
		</file_ref>
	</app_version>
</app_info>

I'll try removing the API and plan_class from that file.
Cheers, Samuel
ID: 8327 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 16 Nov 22
Posts: 113
Credit: 91,685,405
RAC: 436,906
Message 8328 - Posted: 27 Mar 2024, 18:27:52 UTC - in response to Message 8314.  

Last modified: 27 Mar 2024, 18:50:45 UTC
It's not as if the Boinc client isn't detecting all the cpu feature capabilities, it's instead that it can't DISPLAY all the cpu feature capabilities reported by the host OS.

Depending on where the avx tag is placed in the system detected cpu feature output, it could truncate the avx code if it is on the end of the cpu capability output text string that Boinc reads.

All the client releases prior to 7.26 or 8.0 alpha only could display a string length of only 1024 characters. So any feature tag in the string past 1024 characters was truncated. So the client was unaware of the true cpu feature capabilities.

In the new 7.26 AKA 8.0 alpha release the string length for P_FEATURES_SIZE is now 8192 characters. So the client should now report all the features of even server cpus like my AMD Epycs and Intel Xeons.

After looking at the merged code fix for https://github.com/BOINC/boinc/pull/5397
I'd guess that the issue lies with the defined plan_class for the avx-512 app.

This issue took several tries to work it all out as the detection code was hooked into a lot more modules than the devs initially realized. One of the modules needing the code fix on the server side code was the plan_class_spec.cpp module.

But as I mentioned earlier, the new code has to run on both the client and the server. The client 8.0 alpha is just too far ahead of the server code.

A proud member of the OFA (Old Farts Association)
ID: 8328 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 16 Nov 22
Posts: 113
Credit: 91,685,405
RAC: 436,906
Message 8329 - Posted: 27 Mar 2024, 18:38:39 UTC
Any reason why you MUST run the 8.0 alpha? Or just testing for S&G's. If I were you, I'd just fall back to an earlier Boinc release that was working with your original app_info.xml.

I would want the host to still be productive instead of just idling.

A proud member of the OFA (Old Farts Association)
ID: 8329 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
magic_sam

Send message
Joined: 16 Nov 22
Posts: 19
Credit: 7,481,025
RAC: 2,607
Message 8330 - Posted: 27 Mar 2024, 19:05:11 UTC
I don't have to run 8.0.0 alpha, but I just want to help Vitalii Koshura with the tests.

And the rig is far from idle, it's busy crunching Einstein@Home and Milkyway@Home (and distributed.net, mersenne and fishtest) :)

I guess I'll just have to wait for the server side to be updated.

Thanks for your help Keith, really appreciated :)

Cheers, Sam
ID: 8330 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
ahorek's team
Volunteer developer
Volunteer tester

Send message
Joined: 1 Jan 13
Posts: 66
Credit: 8,340,141
RAC: 56,778
Message 8331 - Posted: 27 Mar 2024, 19:13:13 UTC - in response to Message 8327.  
I've tested the alpha 8.0 version and have no issues getting new tasks. Could you double-check if CPU work is enabled in your account manager preferences?
Also, the client may not request new work, if your host is busy running other projects.
ID: 8331 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
magic_sam

Send message
Joined: 16 Nov 22
Posts: 19
Credit: 7,481,025
RAC: 2,607
Message 8332 - Posted: 27 Mar 2024, 19:38:28 UTC

Last modified: 27 Mar 2024, 19:38:41 UTC
@ahorek's team: thanks for giving BOINC 8.0.0 a try. At least now I know that the issue is on my end.
I just double-checked my account manager (BAM) and Asteroids@Home is allowed to run CPU tasks.
I think you are correct, looks like my cache is rather full at the moment (~600 jobs), that may explain why the client refuses to download any new Asteroids@Home tasks. Still, it downloads Milkyway@Home and Einstein@Home jobs just fine...
I just switched all the projects to "No new tasks" mode, in order to empty the cache.
Will keep you all posted.
Thanks again for your help, really appreciated.
Cheers, Sam
ID: 8332 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
magic_sam

Send message
Joined: 16 Nov 22
Posts: 19
Credit: 7,481,025
RAC: 2,607
Message 8333 - Posted: 28 Mar 2024, 16:39:03 UTC

Last modified: 28 Mar 2024, 16:41:34 UTC
Hello all,

Just to let you know that emptying the cache did the trick. I got new Asteroids@home jobs :)

I restarted the client with a very simple app_config.xml file, and no app_info.xml file. So far I'm getting SSE3 jobs only.

Any chance BOINC v8.0.0 alpha will eventually pick up AVX-512 jobs by itself ?

EDIT: if I understand correctly, project managers would have to upgrade the server side to BOINC v8.0.0 first, and that's not going to happen until that release is ready for production.

Cheers, Samuel
ID: 8333 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 16 Nov 22
Posts: 113
Credit: 91,685,405
RAC: 436,906
Message 8334 - Posted: 28 Mar 2024, 17:34:25 UTC - in response to Message 8333.  
Your post statement is correct. Best to use an app_info.xml file to get the avx-512 tasks right now.

A proud member of the OFA (Old Farts Association)
ID: 8334 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Bill F
Avatar

Send message
Joined: 12 Jan 13
Posts: 56
Credit: 13,383,516
RAC: 1,996
Message 8349 - Posted: 21 Apr 2024, 19:53:30 UTC - in response to Message 8170.  
Please provide detailed 'How To" instructions for making this switch to the Anonymous platform.
When do you anticipate the release of client version 7.26.0?


As a start you may want to read this article "Anonymous platform".
There are numerous discussions on the subject How To Setup and Use Anonymous platform also. You just need to do some search through the Discussion board.

The AVX512 application for Windows can be downloaded here:
https://asteroidsathome.net/boinc/download/period_search_10215_windows_x86_64__avx512_win10.exe

Contents of the "app_info.xml" that you'll need to run the AVX512 Windows application:
<app_info>
    <app>
        <name>period_search</name>
        <user_friendly_name>Period Search Application</user_friendly_name>
    </app>
    <file_info>
        <name>period_search_10215_windows_x86_64__avx512_win10.exe</name>
        <executable/>
    </file_info>
    <app_version>
        <app_name>period_search</app_name>
        <version_num>10215</version_num>
        <api_version>7.14.0</api_version>
        <plan_class>avx512_win10</plan_class>
        <avg_ncpus>1.000000</avg_ncpus>
        <file_ref>
            <file_name>period_search_10215_windows_x86_64__avx512_win10.exe</file_name>
            <main_program/>
        </file_ref>
    </app_version>
</app_info>

As to the When BOINC client version 7.26.0 will be released is up to BOINC platform developers not us.


Well a new Development level BOINC 8.0.0 has been released for testing which includes AVX-512 detection.

Bill F
ID: 8349 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile [AF] fansyl

Send message
Joined: 25 Nov 14
Posts: 2
Credit: 5,842,826
RAC: 0
Message 8428 - Posted: 30 May 2024, 15:50:44 UTC
Official stable version 8.0.2 with AV512 support is taped-out : https://boinc.berkeley.edu/download_all.php

Enjoy !
ID: 8428 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile mikey
Avatar

Send message
Joined: 1 Jan 14
Posts: 302
Credit: 32,663,011
RAC: 1,762
Message 8429 - Posted: 31 May 2024, 13:50:05 UTC - in response to Message 8349.  
Well a new Development level BOINC 8.0.0 has been released for testing which includes AVX-512 detection.

Bill F


Thanks BillF downloading and running right now!!
ID: 8429 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
FritzB

Send message
Joined: 9 May 13
Posts: 4
Credit: 8,602,043
RAC: 15,524
Message 8486 - Posted: 7 Jul 2024, 5:58:48 UTC - in response to Message 8429.  
Do period search 102.20 (win10) use AVX512? All apps hat AVX, SSE and so on in their names but 102.20 does not.
ID: 8486 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 16 Nov 22
Posts: 113
Credit: 91,685,405
RAC: 436,906
Message 8487 - Posted: 7 Jul 2024, 6:54:01 UTC

Last modified: 7 Jul 2024, 6:56:10 UTC
Yes, the 102.20 app across all platforms does AVX-512 if the cpu is capable. It is a universal app. Not necessary to indicate any specific SIMD instruction in its name.

If you inspect the stderr.txt output of a finished task, it will show the SIMD instruction used in the calculation.

A proud member of the OFA (Old Farts Association)
ID: 8487 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Marcin Kowalczyk

Send message
Joined: 16 Jun 23
Posts: 3
Credit: 367,740
RAC: 858
Message 8491 - Posted: 13 Jul 2024, 21:57:27 UTC - in response to Message 8167.  
We are very proud to announce our new set of optimized applications that will utilize AVX512 instruction set capable engines or to be precise those, which support AVX512dq instructions!

These applications are built to support both Linux and Windows 64bit architecture OS. The development of this version was possible thanks to the great help provided by ahorek's team!

Unfortunately it turns out that BOINC client applications for Windows still do not report all processor options to the server correctly. It is because of a known bug and even after a lot of discussions in BOINC's channels it's still there. The good news is that thanks to ahorek's team a bugfix was already accepted and merged into the BOINC's repository and the fix will be applied when client version 7.26.0 is released. Till then in order to run the AVX512 application you might need to switch to the Anonymous platform.

We'd like to remind you that while the Boinc server is capable of finding the best performing application for every particular system taking into account multiple factors, after a while it will start sending the right one for every particular system. Which means that even if your CPU supports AVX512dq instructions it still might receive FMA or AVX tasks and there is nothing to be concerned about. In such a case you might want to give a try to the so-called Anonymous platform where your client will explicitly request the AVX512 application.

Happy crunching and thank you for your support!
Asteroids@home's team

Any idea if Apple M series has an equivalent instruction that could be made to work ?
ID: 8491 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
ahorek's team
Volunteer developer
Volunteer tester

Send message
Joined: 1 Jan 13
Posts: 66
Credit: 8,340,141
RAC: 56,778
Message 8493 - Posted: 13 Jul 2024, 23:38:41 UTC - in response to Message 8491.  
ARM processors are using 128bit ASIMD instructions. They have FMA capabilities and the performance is very competitive against x64.
there's also a more recent SVE instruction set with a variable SIMD length (up to 2048bit). Unfortunately, none of the consumer hardware, including the Apple M4, supports them. Even if they were, the app won't be much faster.
ID: 8493 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote

Message boards : News : New AVX512 application released