why I get SSE2 units on my SSE3/AVX CPU? how to force SSE3/AVX?


Message boards : Problems and bug reports : why I get SSE2 units on my SSE3/AVX CPU? how to force SSE3/AVX?

Message board moderation

To post messages, you must log in.
AuthorMessage
Street Photographer

Send message
Joined: 22 Aug 15
Posts: 1
Credit: 87,360
RAC: 0
Message 4618 - Posted: 6 Sep 2015, 0:07:16 UTC
I mostly get SSE2 work units on my Sandy Bridge Intel Core i7-2600 CPU (which has SSE3 and AVX1 but not AVX2). I sometimes get SSE3 units too and I have seen AVX units once or twice as well, but the server seems to prefer sending me SSE2 work.

Why I get SSE2 work on my SSE3/AVX CPU? How can I force SSE3 or AVX work? Is the AVX app happy with AVX1 CPUs or does it require AVX2? (Haswell New Instructions)

Are the SSE3/AVX work units equivalent in terms of science output to the SSE2 units? Or do the SSE2 units implement different scientific computations that cannot be done by the SSE3/AVX apps?
ID: 4618 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile BilBg
Avatar

Send message
Joined: 19 Jun 12
Posts: 221
Credit: 623,640
RAC: 0
Message 4634 - Posted: 13 Sep 2015, 18:34:34 UTC - in response to Message 4618.  

Last modified: 13 Sep 2015, 19:20:58 UTC
Are the SSE3/AVX work units equivalent in terms of science output to the SSE2 units?

Of course - all apps (CPU/GPU, Windows/Linux/Android) are equivalent and tasks are the same.
http://asteroidsathome.net/boinc/apps.php


Why I get SSE2 work on my SSE3/AVX CPU?

You have "Number of tasks completed" ~equal for SSE2 vs SSE3
http://asteroidsathome.net/boinc/host_app_versions.php?hostid=221254

At the moment server thinks the best for you is SSE3 app:
"Average processing rate 159.04 GFLOPS"
... and should send mostly tasks labelled "(sse3)"
There is randomizing parameter (on the server) to send from time to time not-the-best app to test the speed of that 'bad' apps again.

Since different batches of tasks take different time to compute (by the same app):
http://asteroidsathome.net/boinc/results.php?hostid=221254&offset=0&show_names=0&state=2&appid=

... the server may be fooled to think some app is fast when in fact the case may be that the current tasks are easier/shorter to compute.
"Run time" matters (Not the "CPU time") - so if you use the computer at the same time for 'heavy' tasks (e.g. encode video) - BOINC will think the app is slow.


How can I force SSE3 or AVX work?

Only by app_info.xml


P.S.
Technical - for Advanced users:

EXAMPLE of app_info.xml - DO NOT COPY BLINDLY, EDIT IT IF NEEDED
- Copy the .exe files somewhere - they may be deleted by BOINC
- Copy the name of YOUR .exe file and Paste in the text of app_info.xml where needed
<app_info> 

    <app>
        <name>period_search</name>
        <user_friendly_name>Period Search Application SSE3</user_friendly_name>
    </app>

    <file_info>
        <name>period_search_10210_windows_intelx86__sse3.exe</name>
        <executable/>
    </file_info>

    <app_version>
        <app_name>period_search</app_name>
        <version_num>10210</version_num>
        <file_ref>
            <file_name>period_search_10210_windows_intelx86__sse3.exe</file_name>
            <main_program/>
        </file_ref>
    </app_version>

</app_info> 


! If you have tasks on-board BOINC may just Delete them without warning if something is wrong with the app_info.xml !
 



- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 4634 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Misho

Send message
Joined: 12 May 13
Posts: 2
Credit: 1,536,480
RAC: 0
Message 4651 - Posted: 8 Oct 2015, 4:14:29 UTC - in response to Message 4634.  

Last modified: 8 Oct 2015, 4:20:33 UTC
Hello.
I try cpu task but i downloaded SS2 task.
How to edit app.info for downloading AVX and CUDA tasks because i have i7 4790 cpu and NVIDIA gpu?
Best regards.
ID: 4651 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
marmot
Avatar

Send message
Joined: 26 Sep 13
Posts: 33
Credit: 6,065,688
RAC: 1
Message 4652 - Posted: 10 Oct 2015, 6:42:48 UTC - in response to Message 4634.  

Last modified: 10 Oct 2015, 7:04:26 UTC
So there is no other method to force the server to use the AVX application than using the app_info.xml anonymous platform solution?

I tried the modified app_info.xml method and am forcing the HP8560p to run two WU of SSE3 x64, SSE3 x86, and AVX x64 and comparing results but I want the history of WU data to be factored into the results here and not show up as anonymous since the native apps are actually being used. This method isn't going to convince the server that AVX is faster if it shows up as anonymous platform/CPU.

One solution I tried was to delete all applications but the AVX 64 bit version with the result of the server refusing to send WU's.

There is one solution that will work with some special care given to the machine in the first week of operations. Rename the computer so that the server starts a new data record and a new application history. This would lose this machine it's WU history though and I'm not liking that solution.

EDIT: I'm going to rename the 8560p and leave it run 2 cores at top speed (Throttlestop setting the i5 to 32x clock) and use it for nothing else for a week and hopefully get the server to settle in on the AVX app.

This is going to be more of a problem as the desktop market continues it's declines and BOINC is having most of it's work done by tablets and smart phones.
ID: 4652 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
marmot
Avatar

Send message
Joined: 26 Sep 13
Posts: 33
Credit: 6,065,688
RAC: 1
Message 4653 - Posted: 10 Oct 2015, 7:53:27 UTC - in response to Message 4652.  

Last modified: 10 Oct 2015, 8:22:55 UTC
My last post excluded that you'd need to rename the machine after a fresh install of a new OS (yeah, huge omission, sorry). It should be possible to get away with not having to install a new OS and I'll post what was necessary to accomplish that after I figure it out. You just need to get a new Host ID for the machine.
ID: 4653 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
marmot
Avatar

Send message
Joined: 26 Sep 13
Posts: 33
Credit: 6,065,688
RAC: 1
Message 4654 - Posted: 10 Oct 2015, 9:07:18 UTC - in response to Message 4653.  

Last modified: 10 Oct 2015, 9:59:02 UTC
Update:
The OS certainly did not need to be reinstalled. All that had to be done to get the AVX app working the data on the 8560p, is change the computer name, copy the project folders to a safe place, then uninstall BOINC with an uninstaller (like Revo) to make sure all registry entries are removed (the uninstall and reinstall might be unnecessary and only a project remove/re-add or reset might be all that is needed), reboot the machine then reinstall BOINC and finally copy the old BOINC folder back to restore the other projects work making sure not to copy over newer files from the new installation.

This is the old HOST ID for the HP 8560p a new Host ID named 8560p was created. A problem occurred that upon clicking update, the server decided to send 18 WU's and then choice to use the SSE2 app to compute on them. It only downloaded the period_search_10210_windows_x86_64__sse2.exe application. I reset the project and clicked update and then 42 new WU's came down, along with the period_search_10210_windows_x86_64__AVX.exe executable, and are being worked on by the AVX app.

Wish that resetting the project was enough on the old installation. The 1090t machine is supposed to be using SSE3 for optimal data crunching but is using SSE2 so I'll try just doing a project reset, then a name change+project reset and see if that fixes it's problems.

Update2:
I tried various combinations of resetting the Asteroids@Home project, removing the project then re-adding, then resetting it on the 1090t machine but the server refuses to use SSE3 application on the WU's. I'll have to change the machine name, and possibly only need to remove Asteroids@Home then re-add it and reset the project. The reinstall is probably unnecessary too.
ID: 4654 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile BilBg
Avatar

Send message
Joined: 19 Jun 12
Posts: 221
Credit: 623,640
RAC: 0
Message 4656 - Posted: 13 Oct 2015, 4:24:57 UTC - in response to Message 4653.  
just need to get a new Host ID for the machine

Warning: this is not advice for anyone - this is only explanation how to change hostid if you want this for any reason
You will probably lose your tasks (that are currently in the computer)

***

The only thing needed to change hostid (to a newer one)
is to alter rpc_seqno in client_state.xml

Exit BOINC
Copy client_state.xml (to have backup in any case)
Edit client_state.xml by Notepad

Find rpc_seqno:
<rpc_seqno>28371</rpc_seqno>

* !!! Be sure you found the correct <rpc_seqno> for the project you want to generate new hostid
In this case <rpc_seqno> will be near line:
<master_url>http://asteroidsathome.net/boinc/</master_url>

Change rpc_seqno backwards.
From the above example (which is from my client_state.xml) you may make it e.g.:
<rpc_seqno>28355</rpc_seqno>

Save client_state.xml

Start BOINC
Click [Update] for the project

Look in Event Log (Ctrl+Shift+E) to see what happens
 



- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 4656 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
marmot
Avatar

Send message
Joined: 26 Sep 13
Posts: 33
Credit: 6,065,688
RAC: 1
Message 4658 - Posted: 15 Oct 2015, 13:15:16 UTC - in response to Message 4656.  

Last modified: 15 Oct 2015, 13:56:35 UTC

Change rpc_seqno backwards.
From the above example (which is from my client_state.xml) you may make it e.g.:
<rpc_seqno>28355</rpc_seqno>

.
.
.
 


I tried your method and it didn't change the HOSTID. For the Moo! WU the entry looked like:
<rpc_seqno>29</rpc_seqno>

which I changed to <rpc_seqno>22</rpc_seqno> then started BOINC and reset the Moo! project.
Now it's <rpc_seqno>0</rpc_seqno> with the same HOSTID and new set of WU d/led.

Also tried changing the <HOSTID>32476</HOSTID> to another number but of course that would only change if it was a HOST already attached to my account ID.

Next attempt at correcting this, without reinstalling BOINC, was to do some maintenance of merging the two 1090t HOSTID's into one and now the SSE3 has an average turn around of 1.17 days while the SSE2 has 1.14 days.
There are 8 WU's sitting in queue and suspended.
Will the SSE2 average climb to greater than 1.17 as those SSE2 WU's sit there suspended while 24 to 48 hours passes without any WU coming back?

I calculated that if these 8 WU are allowed to start after 3 days then my average on 310 WU should then exceed 1.18 days turn-around and then would be greater than the SSE3 1.17 days and get the server to d/l SSE3 WU's. So in 3 days I'll either have SSE3 WU or reinstall BOINC.

It would be nice if the faster HOSTID tactic worked.
ID: 4658 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile BilBg
Avatar

Send message
Joined: 19 Jun 12
Posts: 221
Credit: 623,640
RAC: 0
Message 4659 - Posted: 17 Oct 2015, 7:11:36 UTC - in response to Message 4658.  
which I changed to <rpc_seqno>22</rpc_seqno> then started BOINC and reset the Moo! project.
Now it's <rpc_seqno>0</rpc_seqno>

Where did I say "reset the project"?
I said:
Click [Update] for the project

Resetting the project deletes almost all info about it including the edited rpc_seqno (that's why you see <rpc_seqno>0</rpc_seqno>)

Try again

Notes:
rpc_seqno = Remote Procedure Call _ Sequence Number

Changing rpc_seqno backwards is considered "cheating" by BOINC server
- it thinks user uses 2 computers with the same HOSTID
(which may happen if you copy files (BOINC Data directory))

So the server "punishes" you generating new HOSTID



- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 4659 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
marmot
Avatar

Send message
Joined: 26 Sep 13
Posts: 33
Credit: 6,065,688
RAC: 1
Message 4660 - Posted: 17 Oct 2015, 21:55:35 UTC - in response to Message 4659.  

Last modified: 17 Oct 2015, 22:04:00 UTC
Followed the steps again for Moo! project
(I forced Asteroids to send SSE3 by aborting an entire day of SSE2 WU's, since server refused to send SSE3 even when SSE2 turn-around was 1.18 days>1.16 days for SSE3)

Stopped BOINC
Edit <rpc_seqno>29</rpc_seqno> to <rpc_seqno>11</rpc_seqno>
Save client_state.xml
restart BOINC
BOINC updated Moo! automatically upon restart.
Log file reads:

2015-10-17 03:14:22 PM | Moo! Wrapper | Sending scheduler request: To fetch work.
2015-10-17 03:14:22 PM | Moo! Wrapper | Requesting new tasks for AMD/ATI GPU
2015-10-17 03:14:24 PM | Moo! Wrapper | Scheduler request completed: got 0 new tasks
2015-10-17 03:14:24 PM | Moo! Wrapper | Generated new computer cross-project ID: d38e1eceef12f9bc415b52c8fad21dc2

Clicked Update on Moo! project and event log reads:

2015-10-17 03:15:41 PM | Moo! Wrapper | update requested by user
2015-10-17 03:15:46 PM | Moo! Wrapper | Sending scheduler request: Requested by user.
2015-10-17 03:15:46 PM | Moo! Wrapper | Requesting new tasks for AMD/ATI GPU
2015-10-17 03:15:49 PM | Moo! Wrapper | Scheduler request completed: got 0 new tasks


Checked Moo! account to see No new HOSTID's created


Checked the client state file to find <rpc_seqno>1</rpc_seqno>.


Have you tried this since version 3.6.9 came out?

------------------------
Correction to above post: New 8560p HOSTID created
ID: 4660 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile BilBg
Avatar

Send message
Joined: 19 Jun 12
Posts: 221
Credit: 623,640
RAC: 0
Message 4661 - Posted: 19 Oct 2015, 5:53:25 UTC - in response to Message 4660.  

Last modified: 19 Oct 2015, 6:08:24 UTC
Version 3.6.9 of what?

I never needed/wanted to try it but sometimes this happens on its own.
See how on ~ 17 Jul 2014 I had >100 new hostids created (I deleted most of them):
http://wuprop.boinc-af.org/hosts_user.php?sort=rpc_time&rev=0&show_all=1&userid=5849

Happens (maybe) when Internet is not working good - "theory" is one Scheduler request is delayed somewhere on the Internet, second Scheduler request is sent OK, then the first is "unlocked" and reaches the server.
Server see out of order Scheduler requests (lower rpc_seqno reaches the server after higher) and generates new hostid

Another example and (opposite) advice "How to revert to an older HostID number?"
http://setiathome.berkeley.edu/forum_thread.php?id=77248&postid=1673215#1673215

Claggy: "As i said, you can't just go and revert to a copy of Boinc with less contacts than the server knows about, it'll eithier give you a new host id, or abandon your work,"
http://setiathome.berkeley.edu/forum_thread.php?id=71398&postid=1356918#1356918

HAL9000: "From time to time I generate new IDs for my machines":
http://setiathome.berkeley.edu/forum_thread.php?id=77248&postid=1673473#1673473

But maybe the server is sometimes "too smart" - you may need to change also the computer name?


I think Josef W. Segur knows the source code of BOINC server and may definitely tell the conditions needed for a new hostid - if you want to PM him:
http://setiathome.berkeley.edu/show_user.php?userid=276784

Or post at SETI@home Number Crunching



- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 4661 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
marmot
Avatar

Send message
Joined: 26 Sep 13
Posts: 33
Credit: 6,065,688
RAC: 1
Message 4686 - Posted: 8 Nov 2015, 18:20:08 UTC - in response to Message 4661.  

Last modified: 8 Nov 2015, 18:41:41 UTC
Version 3.6.9 of what?


That was a typo for 7.6.9 of BOINC manager.


I never needed/wanted to try it but sometimes this happens on its own.
See how on ~ 17 Jul 2014 I had >100 new hostids created (I deleted most of them):
http://wuprop.boinc-af.org/hosts_user.php?sort=rpc_time&rev=0&show_all=1&userid=5849

Happens (maybe) when Internet is not working good - "theory" is one Scheduler request is delayed somewhere on the Internet, second Scheduler request is sent OK, then the first is "unlocked" and reaches the server.
Server see out of order Scheduler requests (lower rpc_seqno reaches the server after higher) and generates new hostid

Another example and (opposite) advice "How to revert to an older HostID number?"
http://setiathome.berkeley.edu/forum_thread.php?id=77248&postid=1673215#1673215


Yeah, I tried and succeeded to change the HostID to a previous version with just a simple edit of the state file.


Claggy: "As i said, you can't just go and revert to a copy of Boinc with less contacts than the server knows about, it'll eithier give you a new host id, or abandon your work,"
http://setiathome.berkeley.edu/forum_thread.php?id=71398&postid=1356918#1356918


He states:
"and change the <rpc_seqno> number for Seti to one or two [i]greater[/i] than what the Computer details page says,
restore Network connectivity,..."


Which is not what I tried. I set the rpc_seqno to a lesser number and the network was probably running at the time. This may very well be the solution to setting the sequence a not yet achieved number, instead of to a past sequence.


HAL9000: "From time to time I generate new IDs for my machines":
http://setiathome.berkeley.edu/forum_thread.php?id=77248&postid=1673473#1673473

But maybe the server is sometimes "too smart" - you may need to change also the computer name?


That's what I was wondering if you had attempted it since client 7.6.9 had been released and maybe the server side HostID assigning code has also changed since 2014.


I think Josef W. Segur knows the source code of BOINC server and may definitely tell the conditions needed for a new hostid - if you want to PM him:
http://setiathome.berkeley.edu/show_user.php?userid=276784

Or post at SETI@home Number Crunching


I'll try this again sometime but for this event I just reinstalled BOINC to a different directory and changed the computer name. Reinstalling BOINC to the same directory without cleaning the Registry of all BOINC traces would just come back with the same HostID. I didn't try the case of keeping the computer name the same and installing to a new directory to see if both variables were necessary.

Results of the new HostID and experiemnt with 3 methods to calculation Asteroid@home data:
Asteroids@Home offers up SSE2, SSE3, AVX code and after getting the new HOSTID the server sent down hundreds of SSE2 and AVX's for the Dell e5420 and the HP8560w but sent only requested 1 SSE3 WU to the HP. I set the Anonymous client to test SSE3 speed but the data sets from day to day would be slightly different so I'm still not sure which algorithm is fastest on this HP8560w i5 2nd gen. It appears that AVX ~5%>SSE3 ~5%> SSE2 when running 4 WU BUT the other 2nd Gen i5 (e5420) is running 1 WU at a time and the SSE2 seems to be beating SSE3 and AVX and the server has locked in SSE2 on that other machine. Either Asteroids@Home has more efficient code for SSE2 that allows multi-threading even though 1 core is chosen in BOINC settings or the CPU uses burst mode more often on SSE2 algorithms. SSE2 being faster in single WU mode surprised me.
ID: 4686 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile BilBg
Avatar

Send message
Joined: 19 Jun 12
Posts: 221
Credit: 623,640
RAC: 0
Message 4698 - Posted: 12 Nov 2015, 4:19:23 UTC - in response to Message 4686.  
That's what I was wondering if you had attempted it since client 7.6.9 had been released and maybe the server side HostID assigning code has also changed since 2014.

This function do not depend on version of BOINC client, only on "server side HostID assigning code"

It was/is discussed here:
"How Do You Assign A Cruncher A New Computer ID?"
http://setiathome.berkeley.edu/forum_thread.php?id=78418

Seems the server side "host recognition has been tightened":
http://setiathome.berkeley.edu/forum_thread.php?id=78418&postid=1739028#1739028

I don't know when they changed the code (may be year ago??) but should not be connected to any BOINC client version release



- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 4698 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote

Message boards : Problems and bug reports : why I get SSE2 units on my SSE3/AVX CPU? how to force SSE3/AVX?