AVX-512 still supported?
Message boards :
Number crunching :
AVX-512 still supported?
Message board moderation
| Author | Message |
|---|---|
|
Send message Joined: 14 Jan 17 Posts: 1 Credit: 3,172,028 RAC: 3 |
Hi, I am updrading my main computer with a new Ryzen 7 9700X, witch supports AVX-512. I know that this project added AVX-512 some time ago for increased performances, however one member on the L'Alliance Francophone's forum said in a recent discussion that he saw somewhere that it has since been dropped for Asteroids@Home. Is it true? And is there a way to know what instructions a task is using? |
|
Send message Joined: 1 Jan 13 Posts: 180 Credit: 16,012,832 RAC: 2,547 |
No, it hasn’t been dropped. We’ve transitioned to a single universal binary that detects available instructions at runtime and selects the optimal one based on your CPU’s capabilities. You can verify which version was used by checking the task details, for example: https://asteroidsathome.net/boinc/result.php?resultid=572657726 Using AVX512 SIMD optimizations. |
|
Send message Joined: 1 Nov 13 Posts: 1 Credit: 679,046 RAC: 1,527 |
|
|
Send message Joined: 1 Jan 13 Posts: 180 Credit: 16,012,832 RAC: 2,547 |
Why do you think anything has changed? The selected instruction set is shown in the task output (CPU tasks) for example, one of your recent tasks https://asteroidsathome.net/boinc/result.php?resultid=642365760 <core_client_version>8.2.8</core_client_version> <![CDATA[ <stderr_txt> BOINC client version 8.2.8 Application: period_search_10220_windows_x86_64__win10.exe Version: 102.20.1.1 CPU: AMD Ryzen 7 9800X3D 8-Core Processor RAM: 63.56 GB Using AVX512 SIMD optimizations. 19:50:49 (9772): called boinc_finish(0) </stderr_txt> ]]> |
|
Send message Joined: 18 Jun 12 Posts: 7 Credit: 10,121,084 RAC: 15,776 |
|
|
Send message Joined: 1 Jan 13 Posts: 180 Credit: 16,012,832 RAC: 2,547 |
WUs are the same, the app itself decides which optimizations (SSE2, SSE3, AVX, FMA, AVX512, ASIMD) to use based on your CPU capabilities A few years ago, multiple application variants (SSE2, AVX, etc.) were available, and BOINC selected the one it deemed fastest after running random tasks for a while. This approach had several shortcomings: work units can have very different runtimes, performance also depends on how tasks are executed (for example, with or without SMT, eco modes...). There are too many variables, so the benchmarks were often unreliable. As a consequence, many users ended up running slower applications. The feature detection by the app fixed the issue. If you want to test/compare other optimizations, you can force the specific version using the app_info.xml <cmdline>--optimization 6</cmdline> / AVX512 <cmdline>--optimization 5</cmdline> / FMA <cmdline>--optimization 4</cmdline> / AVX <cmdline>--optimization 3</cmdline> / SSE3 <cmdline>--optimization 2</cmdline> / SSE2 <cmdline>--optimization 1</cmdline> / C But if your CPU supports AVX512, it is already used by default, so no manual enabling is required, and there are very few cases where a less optimal code path performs significantly better. |
|
Send message Joined: 22 Jul 13 Posts: 15 Credit: 47,232,377 RAC: 42,071 |
Here You mention about app_info in other topic it's app_config. I would like to test something so what is proper one? Also when changes takes place? When new WU starts or new WU has been downloaded? <app_config> <app_version> <app_name>period_search</app_name> <plan_class></plan_class> <cmdline>--optimization 3</cmdline> </app_version> </app_config> |
|
Send message Joined: 1 Jan 13 Posts: 180 Credit: 16,012,832 RAC: 2,547 |
You have to use an anonymous platform 1/ go to your project's dir c:\programdata\boinc\projects\asteroidsathome.net_boinc (windows) /var/lib/boinc/projects/asteroidsathome.net_boinc (linux) 2/ copy/download a binary period_search_binary.exe 3/ in the same folder, create an app_info.xml
<app_info>
<app>
<name>period_search</name>
</app>
<file_info>
<name>period_search_binary.exe</name>
<executable/>
</file_info>
<app_version>
<app_name>period_search</app_name>
<version_num>10220</version_num>
<avg_ncpus>1.000000</avg_ncpus>
<cmdline>--optimization 3</cmdline>
<file_ref>
<file_name>period_search_binary.exe</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>
4/ restart the BOINC client for the changes to take effect In this example, the application will use SSE3 instead of AVX-512, but there’s little benefit in doing so, as it would only result in slower performance. Of course, you can't do the opposite by forcing AVX-512 on a CPU that doesn't support it. |
|
Send message Joined: 22 Jul 13 Posts: 15 Credit: 47,232,377 RAC: 42,071 |
|
|
Send message Joined: 1 Jan 13 Posts: 180 Credit: 16,012,832 RAC: 2,547 |
Clock speed isn’t the only factor. Dropping to a lower instruction set can reduce CPU load and help maintain higher frequencies, but it also lowers IPC. As a result, overall efficiency will likely suffer. Using a power limit is generally the better approach. Early Intel CPUs with AVX-512 (like Skylake-W) struggled with AVX-512, as the increased power consumption and reduced clock speeds MAY outweigh the performance gains. However, this is not the case with Zen 4 / Zen 5. In any case, feel free to test it yourself and see how it behaves on your system. |
|
Send message Joined: 22 Jul 13 Posts: 15 Credit: 47,232,377 RAC: 42,071 |
As You said. My CPU is 7950@100W and with SSE3 instructions frequency didn't rise, but WU times rised from ~ 2500sec to 3600sec (27 WU - 5 threads free). So obvius RAC reduction here in Asteroids. But same time my GPU crunch Einstein O4 WU and times with Asteroids SSE3 are better comparing to AVX512: 1500vs1750. Thx for help. Any problem for project if I stay with anonymous platform? |
|
Send message Joined: 1 Jan 13 Posts: 180 Credit: 16,012,832 RAC: 2,547 |
You have a 100W power limit. If you run a single EaH task, one core can easily boost to its maximum clock speed. However, if you run 27 Asteroids tasks simultaneously, the CPU must lower its clock speeds (= performance) to remain within the total 100W power budget. You can try running a GPU recalculation on Einstein O4 GPU. It might be slower, but it will also be less dependent on CPU performance. > Any problem for project if I stay with anonymous platform? It’s not a problem for the project, but if a new version is released that’s incompatible with the current work, you won’t get the update automatically. |
Message boards :
Number crunching :
AVX-512 still supported?