![]() |
I compiled mfaktc using CUDA 8.0 and computer 6.1 for the pascal 1080 Founders Edition, but it looks like the bugs in 7.0 and 7.5 are still present. 43/107 self tests failed.
|
[QUOTE=airsquirrels;435955]I compiled mfaktc using CUDA 8.0 and computer 6.1 for the pascal 1080 Founders Edition, but it looks like the bugs in 7.0 and 7.5 are still present. 43/107 self tests failed.[/QUOTE]
You're talking about CUDA 8.0 RC I guess... right and wrong. At least they fixed the sub_cc bug on Maxwell which allows me to analyze the remainig bug(s) at least... Oliver P.S. reopened the bugreport already |
Can you run an unmodified mfaktc 0.21 selftest (mfaktc.exe -st) on your Pascal GPU?
CUDA 8.0RC doesn't look that bad for me on my GTX980 (compute 5.2): [CODE] kernel | success | fail -------------------+---------+------- UNKNOWN kernel | 0 | 0 75bit_mul32 | 0 | 2682 95bit_mul32 | 0 | 2867 barrett76_mul32 | 1096 | 0 barrett77_mul32 | 1114 | 0 barrett79_mul32 | 1153 | 0 barrett87_mul32 | 1066 | 0 barrett88_mul32 | 1069 | 0 barrett92_mul32 | 1084 | 0 75bit_mul32_gs | 0 | 2420 95bit_mul32_gs | 0 | 2597 barrett76_mul32_gs | 1079 | 0 barrett77_mul32_gs | 1096 | 0 barrett79_mul32_gs | 1130 | 0 barrett87_mul32_gs | 1044 | 0 barrett88_mul32_gs | 1047 | 0 barrett92_mul32_gs | 1062 | 0 [/CODE] Much better than 7.0 and 7.5 with the subcc bug... Oliver |
Here is 8.0 with compute 6.1, I will redo with the same compute as you:
UPDATE: compute less than 6.1 throws 'ERROR: cudaGetLastError() returned 8: invalid device function' [CODE] Selftest statistics number of tests 26192 successfull tests 13434 no factor found 12758 kernel | success | fail -------------------+---------+------- UNKNOWN kernel | 0 | 0 71bit_mul24 | 2586 | 0 75bit_mul32 | 0 | 2682 95bit_mul32 | 0 | 2867 barrett76_mul32 | 1096 | 0 barrett77_mul32 | 1114 | 0 barrett79_mul32 | 1153 | 0 barrett87_mul32 | 1066 | 0 barrett88_mul32 | 1069 | 0 barrett92_mul32 | 1084 | 0 75bit_mul32_gs | 0 | 2420 95bit_mul32_gs | 0 | 2597 barrett76_mul32_gs | 1079 | 0 barrett77_mul32_gs | 1096 | 0 barrett79_mul32_gs | 0 | 1130 barrett87_mul32_gs | 1044 | 0 barrett88_mul32_gs | 1047 | 0 barrett92_mul32_gs | 0 | 1062 [/CODE] |
:sad: :sad: :sad: :sad: :sad:
Looks like they (nvidia) has a big issue with subcc... looks like the same bug is not fixed yet for Pascal... Nvidia doesn't like me/mfaktc! Oliver |
Hi,
thanks to David we know[LIST][*]that you can't run mfaktc one Pascal (GTX 1070/1080) [B][U]today[/U][/B] (likely a bug in CUDA 8.0RC)[*]the issue is the same as with Maxwell (but with Maxwell you can go for CUDA 6.5) (CUDA 7.0 and 7.5 have even worse bugs related to [I]subcc[/I]).[/LIST] For now [B][U]I guess[/U][/B] that nvidia didn't fix the subcc bug completly. :sad: [B][U]For now[/U][/B] I can't recommend to buy a Pascal GPU if the (only) purpose is running mfaktc! That is sad because the performance numbers are really sweet... over 1THz equivalent (Davids GTX 1080) with less than 200W. That is more than 5GHz equivalent per watt! Oliver |
[B][I][U]should[/U][/I][/B] be fixed in final CUDA 8.0.
Oliver |
[QUOTE=TheJudger;436892][B][I][U]should[/U][/I][/B] be fixed in final CUDA 8.0.
Oliver[/QUOTE] :bow: |
failwell enhancement for checkpoint write error
It would be useful following a 'WARNING, could not write checkpoint file "M#########.ckp"' for the checkpoint to be output to stdout so that the file can be manually created if necessary. Ideally this could be enabled for every checkpoint with the introduction of an additional mfaktc.ini parameter or a new switch.
[QUOTE=LaurV;431381]We are with Oliver here. We used mfaktc for years and never had problems with checkpoint files. [edit: we do checkpoint every 30 minutes, or so] Also, if really needed, for assignment that would take ages, splitting one expo over many cards is no problem, one simple pari or perl script can create the checkpoint file to start with some predetermined class. [edit: you still have to watch them to know when to stop each of them, except the last who stops by itself after the last class][/QUOTE] Do you have the script available? Or are you able to generate the checksum for class 1808 of a multi-bit range factoring of ^77 to ^81 for M332347303? |
Can you post the contents of [U]any[/U] checkpoint file? (make one, copy paste the text here).
So I can adjust the checksum to match yours, there are different calculus for different mfaktc versions. I don't have access to my computer at home right now, (something is wrong there, I am at job, lunch break), but I can put together a small C program to do that, by shamelessly copying from Oliver's code, which is public, on the web. The "checkpoint.c", in mfaktc distribution, first two functions are all you need, ctrl+c, ctrl+v in your favorite IDE, then add a "main" and here you go. [CODE] #include "stdafx.h" #define CHECKPOINT_FILE "mfaktc.ckp" #define NUM_CLASSES 4620 #define MFAKTC_VERSION "0.20" unsigned int checkpoint_checksum(char *string, int chars) /* generates a CRC-32 like checksum of the string */ { unsigned int chksum = 0; int i, j; for (i = 0; i<chars; i++) { for (j = 7; j >= 0; j--) { if ((chksum >> 31) == (((unsigned int)(string[i] >> j)) & 1)) { chksum <<= 1; } else { chksum = (chksum << 1) ^ 0x04C11DB7; } } } return chksum; } // writes the checkpoint file void checkpoint_write(unsigned int exp, int bit_min, int bit_max, int cur_class, int num_factors) { FILE *f; char buffer[100], filename[20]; unsigned int i; sprintf_s(filename, "M%u.ckp", exp); fopen_s(&f, filename, "w"); if (f == NULL) { printf("WARNING, could not write checkpoint file \"%s\"\n", CHECKPOINT_FILE); } else { sprintf_s(buffer, "%u %d %d %d %s: %d %d", exp, bit_min, bit_max, NUM_CLASSES, MFAKTC_VERSION, cur_class, num_factors); i = checkpoint_checksum(buffer, strlen(buffer)); fprintf(f, "%u %d %d %d %s: %d %d %08X", exp, bit_min, bit_max, NUM_CLASSES, MFAKTC_VERSION, cur_class, num_factors, i); fclose(f); } } int _tmain(int argc, _TCHAR* argv[]) { unsigned int exp; int bmin, bmax, cls; char ch; printf("Exponent : "); scanf_s("%u", &exp); printf("From bitlevel : "); scanf_s("%d", &bmin); printf("To bitlevel : "); scanf_s("%d", &bmax); printf("Current class : "); scanf_s("%d", &cls); checkpoint_write(exp, bmin, bmax, cls, 0); //assume no factors were found by former runs printf("\nDone. Use it at your own risk...\nPress a key to exit."); ch=_getch(); return 0; } [/CODE] Assuming you can't compile, and assuming my code is right, and assuming you use version 0.20 of the code, this is what is generated for your data: [CODE]332347303 77 81 4620 0.20: 1808 0 A60FF311[/CODE] |
[QUOTE=LaurV;438881]Can you post the contents of [U]any[/U] checkpoint file? (make one, copy paste the text here).
So I can adjust the checksum to match yours, there are different calculus for different mfaktc versions. [/QUOTE] Thanks LaurV, I didn't consider the checksum might differ between versions, since they don't with prime95. Here is an earlier checkpoint: [CODE]M332347303 77 81 4620 0.21: 1805 0 57B2DB5F[/CODE] [QUOTE=LaurV;438881]Assuming you can't compile, and assuming my code is right, and assuming you use version 0.20 of the code, this is what is generated for your data: [CODE]332347303 77 81 4620 0.20: 1808 0 A60FF311[/CODE][/QUOTE] I did test the checkpoint you generated, but as you noted since I'm using a different version (0.21) mfakto didn't recognise it. |
| All times are UTC. The time now is 23:12. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.