![]() |
[quote=10metreh;169155]
Seems it wasn't a 25-30% speedup for me :sad:[/quote] Sorry for the mis-information. The higher end speedup occured on opteron/athlon and not on p3/p4 which had less of an improvement. Here are the comparisons I measured on a 3.8 GHz P4 (in seconds) [CODE] digits msieve-1.41 yafu-1.09 55 6 4.25 60 15 14.1 65 37 35 70 83 77 75 254 267 80 522 539 82 1479 1352 85 1911 1550 [/CODE] I don't know what happens after C85, when msieve starts double large prime. I expect it will catch up, but I'm not sure if it will overtake yafu at that point. I only have access to that P4 at night, so I can't run a benchmark now. |
[quote=Shaopu Lin;169125]When I compiled yafu-1.09 on my core2 duo PC, there occured some error.
[code]gcc -c -O3 -march=k8 -mtune=k8 -fomit-frame-pointer -Wall relation.c -DYAFU_64K -DCACHE_LINE_64 relation.c: Assembler messages: relation.c:1362: Error: missing ')' relation.c:1362: Error: junk `(%rsp))' after expression relation.c:1363: Error: junk `(56(%rsp))' after expression make: *** [relation.o] Error 1 [/code] The version of gcc is 4.3.2 and the OS is OpenSUSE 11.1.[/quote] Try this flag line: FLAGS = -c -O3 -fomit-frame-pointer -Wall and this defs line (remove -DYAFU_64k and _DCACHE_LINE_64) DEFS = -DHAS_SSE2 This is a 64bit OS, right? - ben. |
Hi Ben.
I'm afraid I have the same problem; the issue is in SCAN_16X. 'mask' is being passed in a memory location rather than a register, and so movdqa (%2), %%xmm0 text-expands as movdqa (56(%rsp)), %xmm0 which is of course not valid assembler code. Maybe changing relation.c line 87 to : "r"(bptr + j), "r"(mask) \ to force the thing to be passed in a register might help? When I do this it manages to compile and correctly to factor (10^71-1)/9. (this is on a dual-core K8/2200, AMD64 ubuntu 8.04, gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3)) |
[quote=fivemack;169196]Hi Ben.
I'm afraid I have the same problem; the issue is in SCAN_16X. 'mask' is being passed in a memory location rather than a register, and so movdqa (%2), %%xmm0 text-expands as movdqa (56(%rsp)), %xmm0 which is of course not valid assembler code. Maybe changing relation.c line 87 to : "r"(bptr + j), "r"(mask) \ to force the thing to be passed in a register might help? When I do this it manages to compile and correctly to factor (10^71-1)/9. (this is on a dual-core K8/2200, AMD64 ubuntu 8.04, gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3))[/quote] Thanks! This is something I couldn't see using gcc 3.2.3, which happily compiles with the "g" constraint. I'll update my development source and make sure nothing breaks unexpectedly. |
I tried this method provided by fivemack, it was compiled well and the same error no longer occured.
[QUOTE=bsquared;169192] This is a 64bit OS, right? [/QUOTE] Yes, this is a 64bit OS. |
[quote=Shaopu Lin;169199]I tried this method provided by fivemack, it was compiled well and the same error no longer occured.
[/quote] Good! That's another beer I owe him, should he ever venture to Minnesota or I to sunny Cambridge. You should still probably adopt the -DHAS_SSE2 rather than -DYAFU_64k; on a core2 you'll want 32k blocksizes and SS2 code in the siqs routine. -DCACHE_LINE_64 doesn't do anything right now... so you can safely leave it out of DEFS. |
[quote=bsquared;169198]Thanks! This is something I couldn't see using gcc 3.2.3, which happily compiles with the "g" constraint.
I'll update my development source and make sure nothing breaks unexpectedly.[/quote] Everything seems to be working fine with this fix. I'll get an updated 1.09 source on the webpage sometime today. |
I'm using yafu for computing some aliquiot sequences. Im not sure if this is a big deal or not, but I wanted to bring it to your attention. Yafu is currently doing a siqs run on a C93. For about 30 minutes the rels/sec hovered around 96. After about 45 minutes it says rels/sec is -124. Is this just a cosmetic issue or could this cause the computation to fail later on? Thanks!
|
[quote=antiroach;169257]I'm using yafu for computing some aliquiot sequences. Im not sure if this is a big deal or not, but I wanted to bring it to your attention. Yafu is currently doing a siqs run on a C93. For about 30 minutes the rels/sec hovered around 96. After about 45 minutes it says rels/sec is -124. Is this just a cosmetic issue or could this cause the computation to fail later on? Thanks![/quote]
As long as the number of relations keeps accumulating it should eventually finish and find factors. I don't think you'll have any problems, but let me know if you do or if the number of relations found (not rels/sec) stalls completely. |
YAFU 1.10
YAFU 1.10 is now available, including windows 64 bit binaries.
No real highlights since 1.09, just incorporated the bugfixes reported here and elsewhere into the code, and took care of a couple small todo list items. The CHANGES log has more details. - ben. |
[QUOTE=bsquared;169258]As long as the number of relations keeps accumulating it should eventually finish and find factors. I don't think you'll have any problems, but let me know if you do or if the number of relations found (not rels/sec) stalls completely.[/QUOTE]
Just wanted to report that the factorization completed successfully. |
| All times are UTC. The time now is 15:02. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.