Message boards :
Number crunching :
HOW-TO: make your own optimized Windows Seti@Home client!
Message board moderation
Previous · 1 · 2 · 3 · 4 · 5
Author | Message |
---|---|
Reuben Gathright Send message Joined: 8 Mar 01 Posts: 213 Credit: 14,594,579 RAC: 0 |
Thanks for posting this great programming tool. I have been playing with assembly optimization of the code. The first inline assembly function actually worked, no real gains though. I hope to move more code to assembly and maybe reuse it in the later ALFA version of the software. Two Questions: How different will the next generation of code be? Using your experience with the code, how much optimization do you think we could get out of this? Overclock with the MSI G31M3-L and Intel E8600 3.33Ghz Intel D865GLC Socket 478 Motherboard ~How To Overclock The Eee ASUS 1005HA Netbook To 1.9Ghz~ |
KWSN - Chicken of Angnor Send message Joined: 9 Jul 99 Posts: 1199 Credit: 6,615,780 RAC: 0 |
Hi Reuben, I'm in contact with another person who made some inline assembly optimizations in pulsefind.cpp. His findings from using VTune were that it was the biggest bottleneck remaining, and whoever found a better mathematical way than the slew of additions going on there would probably accelerate things quite a lot. Right now, tests indicate his code changes give some 3-10% performance gain on my Pentium-D system. What function did you "attack"? I'm very interested in comparisons and information - if you want, you could head over to my site at http://www.zadra.org/seti_enhanced/ and register, I'll give you access to the development area. I've just posted some information about what he did there (as well as attached his modified pulsefind.cpp). The more (input) the merrier (the gains) :o) Regards, Simon. Donate to SETI@Home via PayPal! Optimized SETI@Home apps + Information |
Reuben Gathright Send message Joined: 8 Mar 01 Posts: 213 Credit: 14,594,579 RAC: 0 |
Great, that's what I was looking for... the soup of addition ops! Will login to your forums soon. Overclock with the MSI G31M3-L and Intel E8600 3.33Ghz Intel D865GLC Socket 478 Motherboard ~How To Overclock The Eee ASUS 1005HA Netbook To 1.9Ghz~ |
-= Vyper =- Send message Joined: 5 Sep 99 Posts: 1652 Credit: 1,065,191,981 RAC: 2,537 |
Hi Reuben, Hi i've been following this for a while now.. Just wondered if there is any benefit to compile a 64bit version along with more spare registers of use to "middle store" data on it's way to ram.. And i noticed this file in the code amd64fft8g.cpp, is that even beeing used somewhere. It's seems to be amd specific optimisation but i cant even recall that filename being used in any file in the build? Is that just me or does compilers work in a different manor? Kind Regards Vyper _________________________________________________________________________ Addicted to SETI crunching! Founder of GPU Users Group |
Reuben Gathright Send message Joined: 8 Mar 01 Posts: 213 Credit: 14,594,579 RAC: 0 |
A better use of the registers would be using them to store the results of multiple simultaneous addition operations. It is not easy to control where data is stored in the CPU cache. You would need to constantly "query" the cache for a pointer to the next available memory block. Of course, I have only been doing this for a few years as a hobby (no one wants to pay me for an ASM based database system :). If someone has any idea of how to control cache allocation, not just registers, please post some sample code! Overclock with the MSI G31M3-L and Intel E8600 3.33Ghz Intel D865GLC Socket 478 Motherboard ~How To Overclock The Eee ASUS 1005HA Netbook To 1.9Ghz~ |
-= Vyper =- Send message Joined: 5 Sep 99 Posts: 1652 Credit: 1,065,191,981 RAC: 2,537 |
Is there someone out there which have the possibility to try a xT compiled chicken S@H app. This is STRICTLY testing only because it has been compiled with trial versions of IPP and is NOT for distributing.. If all went well this should be a Core2 processor optimized app and i just want to know how well it crunches results on a Core2 based system compared to the regular SSE2/SSE3 app from chicken. Someone out there who volunteers should drop me a mail.. laracroft@telia.com Kind Regards Vyper _________________________________________________________________________ Addicted to SETI crunching! Founder of GPU Users Group |
KWSN - Chicken of Angnor Send message Joined: 9 Jul 99 Posts: 1199 Credit: 6,615,780 RAC: 0 |
Vyper, I've experimented with SSE4 /QxT compiled versions, but they have not shown any speed difference to SSE3 versions compiled with /QxP. So far, only one person has tested them on an x6800 @ 3.52 GHz, so there may yet be some speed gains to be had. In any case, I'm interested in your work - if you want, you can head over to my site and register, I'm trying to get all people working on optimizations together in one place to share brainpower. I'll bump your access to the test group. Regards, Simon. Donate to SETI@Home via PayPal! Optimized SETI@Home apps + Information |
BORG Send message Joined: 3 Aug 99 Posts: 305 Credit: 6,157,052 RAC: 0 |
Is there someone out there which have the possibility to try a xT compiled chicken S@H app. Vyper I have a dual core 3.4 running Windows server 2003 standard x64 edition. If you like I can test your app :-) |
-= Vyper =- Send message Joined: 5 Sep 99 Posts: 1652 Credit: 1,065,191,981 RAC: 2,537 |
Is there someone out there which have the possibility to try a xT compiled chicken S@H app. Head over to Chicken's site. He has made a more thoroughly compiled SSE4 version than i ever succeded with. Sorry for the inconvinience.. //Vyper _________________________________________________________________________ Addicted to SETI crunching! Founder of GPU Users Group |
Demi Send message Joined: 27 Aug 03 Posts: 4 Credit: 451,155 RAC: 0 |
Hello I use VS2005 and Intel C++ Compiler, IPP, MKL(all newest). Source from here 'http://www.zadra.org/seti_enhanced/index.php?module=Downloads;sa=download;id=5;mirror=1' I just modified include, lib directory. But rebuild solusion is stop with error. error 6 error: a value of type "const char *" cannot be used to initialize an entity of type "char *" ..\\..\\..\\boinc\\api\\gutil_text.C error 7 error: a value of type "const char *" cannot be assigned to an entity of type "char *" ..\\..\\..\\boinc\\api\\gutil_text.C warning 66 cannot open precompiled header input file .\\Release\\seti_boinc.pchi Command-line error also 64 warnings, sad=/ |
-= Vyper =- Send message Joined: 5 Sep 99 Posts: 1652 Credit: 1,065,191,981 RAC: 2,537 |
Hello I have tried a year ago to compile too with VS2005 and it gave me errors back then. After that i tried Chicken's build and following directions and it worked. Why it does error out with VS2005 i don't know but it's rumoured that it has some problem with VS2005 instead of using VS2003 .. So for now i don't have an answer but to confirm what you have just said.. Head over to chicken's site and register at their forum to get help.. Kind Regards Vyper _________________________________________________________________________ Addicted to SETI crunching! Founder of GPU Users Group |
KWSN - Chicken of Angnor Send message Joined: 9 Jul 99 Posts: 1199 Credit: 6,615,780 RAC: 0 |
Hello Hi Demi, I have also had this problem with VS 2005 (as well as all the other people I know who tried to use it to compile S@H). Eric Korpela has said that it should actually not cause problems, so I can only surmise that VS2005 has some issues with C/C++ syntax that worked with .NET/2003. The fun part is that the compiler used in both cases is the exact same - Intel's ICC (and therefore, is definitely not the source of the problem IMO). Shouldn't syntax checking be done by the compiler and not the IDE? Oh well, blame Microsoft ;o) The even worse part is that 64-bit support with ICC is patchy with 2003, at best. I have not succeeded in building a native 64-bit Windows binary with VS 2003, it keeps erroring out with "Target machine type AMD64 conflicts with module machine type X86" even when I specified the machine type manually in the project properties after installing the 64-bit SDK(s) necessary and adjusting my environment vars (running VS 2003 from a .cmd file to set up 64-bit compilation) and linking 64-bit libs. So it's a rock and a hard place, really. 64 bit versions have been shown to offer significant performance advantages on Linux, it stands to reason they should do similar things on Windows - so it's high up on my list of things to be done. Anyway, I'm sorry to say that unless you know how to track down and fix the sources responsible for generating that error, you'll have to use VS 2003 for the time being. HTH, Simon. Donate to SETI@Home via PayPal! Optimized SETI@Home apps + Information |
KWSN - Chicken of Angnor Send message Joined: 9 Jul 99 Posts: 1199 Credit: 6,615,780 RAC: 0 |
Hi folks, I'm in contact with someone who has successfully managed to build on VS 2005 - he's told me what needs to be changed to make it work. I will put up a version meant for VS 2005 shortly (and test whether it also still works with 2003, it should though). So good news for all of you who do not have access to VS 2003, and this should also make creating Windows 64-bit executables much easier (Intel and Microsoft both say so in their docs, anyway). Regards, Simon. Donate to SETI@Home via PayPal! Optimized SETI@Home apps + Information |
Demi Send message Joined: 27 Aug 03 Posts: 4 Credit: 451,155 RAC: 0 |
Thanks for work. When you put it up, leave a reply here :) Regard. Hi folks, |
©2024 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.