Neues Projekt: Collatz Conjecture (3x+1)

Status
Für weitere Antworten geschlossen.
http://en.wikipedia.org/wiki/Collatz_conjecture

Ich denke das Du den Link selbst gefunden hast. Dort ist aber alles beschrieben. Leider auf englisch und nichts für Nichtmathematiker. Ich glaube das auch nur ein Mathematiker dir erklären kann welche Auswirkungen die Lösung dieses Problems auf die restliche Mathmatik und damit auf Physik, Astrophysik, Quantenphysik etc also die restlichen Naturwissenschaften haben könnte.

Ps: Hab auch noch ne deutsche Seite gefunden: http://de.wikipedia.org/wiki/Collatz-Problem
 
Ja, die Wiki-Links hatte ich tatsächlich schon gesehen (und auch gelesen). Trotzdem danke für die Links (falls nochmal jemand was dazu im Forum sucht).
Aber wie du schon richtig geschrieben hast, kann wohl wirklich nur ein Mathematiker die Auswirkungen abschätzen.

Ich werde trotzdem noch ein wenig weiterrechnen. Im Leben muss ja nicht immer alles einen Sinn haben. :P
 
Die AMD/ATI Collatz App benötigt bei Gelegenheit ein kleines Update

Bisher erkennt die App die ATI GPU anhand der CAL_TARGET_IDs (0 bis 11).

Mein Neuzugang, 6850, hat jedoch eine CAL_TARGET_ID von 17 !


Dh AMD hat wenigstens noch GPGPU-Geräte mit CAL_TARGET_IDs 12 bis 16 - die Frage ist nur, was was ist und wann AMD endlich das Update des ATI StreamSDKs kommt.
 
Deswegen würde sie aber nicht schneller rechnen. Reine Kosmetik :P
 
Nunmehr habe ich auch rausgefunden was hinter den CAL_Target_IDs 12 - 14 steckt:
12 : Wrestler (Fusion) dh Device IDs 1002:9802 bis 1002:9805
13 : Sumo dh 1002:9640 bis 1002:9645
14 : Supersumo - was'n dat ?
15 : ?
16 : ?
17 : Barts

@ 2D:
Schon klar, Optimierungen wie die für die 5000er Familie wirds wenn erst mit dem neuen SDK 2.3 sowie viel "Handarbeit" geben ....

 
Wieso muss eigentlich jedesmal die App auf die neuen IDs angepasst werden? Bei NV reicht doch auch der Treiber den Fam-Namen durch, oder nicht?
 
Wenn ich meine doch recht bescheidene Erinnerung mitteilen darf, lag es daran daß beim AMD Treiber immer 5000Series stand und keiner wusste welche Karte es genau war.
Deshalb hatte Crashtest die genaue Auslesung selbst gebastelt damit man wusste ob es nun eine 5870 oder eine 5850 ist.
Sollte ich Stuss erzählt haben *suspect*
immer feste druff *buck*
 
Mangels schlechter Dokumentation, insb. bei ADL, hatte ich dieses Projekt abgebrochen ...
Es wäre über ADL theor. möglich gewesen, jede aktive AMD/ATI-GPU genau zu identifizieren - aber sehr umständlich.

nVIDIA "exportiert" den Windowsgerätenamem mit in die entsprechende CUDA-Struktur.
ATI "exportiert" nur die CAL_TARGET_ID etwa CAL_TARGET_600 oder CAL_TARGET_770, daraus bastelt BOINC sowie die Apps dann "Gruppennamen

Code:
        switch ((int)attribs.target) {
        case CAL_TARGET_600:
            gpu_name="ATI Radeon HD 2900 (RV600)";
            break;
        case CAL_TARGET_610:
            gpu_name="ATI Radeon HD 2300/2400/3200 (RV610)";
            attribs.numberOfSIMD=1;        // set correct values (reported wrong by driver)
            attribs.wavefrontSize=32;
            break;
        case CAL_TARGET_630:
            gpu_name="ATI Radeon HD 2600 (RV630)";
            // set correct values (reported wrong by driver)
            attribs.numberOfSIMD=3;
            attribs.wavefrontSize=32;
            break;
        case CAL_TARGET_670:
            gpu_name="ATI Radeon HD 3800 (RV670)";
            break;
        case CAL_TARGET_710:
            gpu_name="ATI Radeon HD 4350/4550 (R710)";
            break;
        case CAL_TARGET_730:
            gpu_name="ATI Radeon HD 4600 series (R730)";
            break;
        case CAL_TARGET_7XX:
            gpu_name="ATI Radeon (RV700 class)";
            break;
        case CAL_TARGET_770:
            gpu_name="ATI Radeon HD 4700/4800 (RV740/RV770)";
            break;
        case 8:
            gpu_name="ATI Radeon HD5800 series (Cypress)";
            break;
        case 9:
            gpu_name="ATI Radeon HD5700 series (Juniper)";
            break;
        case 10:
            gpu_name="ATI Radeon HD5x00 series (Redwood)";
            break;
        case 11:
            gpu_name="ATI Radeon HD5x00 series (Cedar)";
            break;
		default:
            gpu_name="ATI unknown";
            break;
        }

Und wie man sieht fehlen da alle neuen Geräte ....

Es wäre einfacher, wenn AMD auch wenigstens den Windows Namen exportieren würde - oder die PCI-DeviceID .....

und so muss man bei jeder neuen CAL_Target_ID wieder rumbasteln ...

Code:
        case 12:
            gpu_name="AMD Fusion (Wrestler)";
            break;
        case 13:
            gpu_name="AMD Sumo";
            break;
        case 14:
            gpu_name="AMD Supersumo";
            break;
        case 17:
            gpu_name="ATI Radeon HD6800 series (Barts)";
            break;

Aber wie gesagt, da fehlen einige ASIC-Gruppen, 15+16 ggf 18...
für CAYMAN / ANTILLES / BLACKCOMB / TURKS / SEYMOUR / CAICOS ???

Leider ist dies auch "ungenau", da MobilGPUs auch darunter subsumiert werden ... ; noch schlimmer ist es, dass AMD dies auch bei OpenCL so macht ?!
 
Zuletzt bearbeitet:
Windows-Name? Du meinst den String, welcher vom Treiber kommt?!
 
Windows-Name? Du meinst den String, welcher vom Treiber kommt?!

Genau, über
Code:
int (*__cuDeviceGetName)(char*, int, int); 
sowie
(*__cuDeviceGetName)(cc.prop.name, 256, device);
erält die entspr. CUDA-Struktur den Gerätenamen, welcher bei Windows in der Treiber Inf im Bereich [Strings] liegt. Überschreibt man diesen zB mit "AMD Radeon HD 7900", speichert die Inf und installiert diesen Treiber, meldet Boinc auch "AMD Radeon HD 7900" *lol*


Nachtrag:
Boinc (CAL) meldet wie erwartet "ATI unknown",
OpenCL meldet jedoch "Buzzard"

und wer ab und zu DLLs mit Notepad öffnet findet so einiges :

Cypress Juniper Redwood Cedar - so weit so gut aber was sind:
Sugi ; SupaSugi ; WhitePine ; Cormorant ; Kiwi ; Buzzard ; Toucan ; Cuckoo ????

Fazit:
Buzzard ist der Codename des Codenamen NI BARTS ... wtf !

Sugi = SUMO
SuperSugi = SuperSumo


Nachtrag 2:
Die Enumerierung ist zwischen CAL und OpenCL leicht verschoben ... sodass
Code:
[STRIKE]
        case 12:
            gpu_name="AMD Fusion (Wrestler)";
            break;
        case 13:
            gpu_name="AMD Sumo";
            break;
        case 14:
            gpu_name="AMD Supersumo";
            break;[/STRIKE]
        case 17:
            gpu_name="ATI Radeon HD6800 series (Barts)";
            break;
 
Zuletzt bearbeitet:
Genau, über
Code:
int (*__cuDeviceGetName)(char*, int, int); 
sowie
(*__cuDeviceGetName)(cc.prop.name, 256, device);
erält die entspr. CUDA-Struktur den Gerätenamen, welcher bei Windows in der Treiber Inf im Bereich [Strings] liegt. Überschreibt man diesen zB mit "AMD Radeon HD 7900", speichert die Inf und installiert diesen Treiber, meldet Boinc auch "AMD Radeon HD 7900" *lol*
Ähm das ist mir bekannt ;) - Nur der Wortlaut "WindowsName" suggerierte etwas anderes.
 
CUDA liefert, was DISPLAY_DEVICE.DeviceString auch lierfert ...
 
Sagt mal, bin ich der Einzige oder haben noch Andere folgendes Problem.
Eine Reihe von GrKa haben Collatz WUs am Wickel, die einfach nicht fertig werden.
Beispiel:
Bisherige Rechenzeit: 87:29:55, Fertig: 97,757 %, Restlaufzeit: 2:00:25

Das steht jetzt so, seit ich es vor einer Stunde bemerkt habe. Das Dumme ist, dass BoincView die hohe Rechenzeit gar nicht anzeigt. Dort stehen 20 Min.
Nur weil mein output immer weiter runter ging, habe ich es überhaupt bemerkt.
 
Sagt mal, bin ich der Einzige oder haben noch Andere folgendes Problem.
Eine Reihe von GrKa haben Collatz WUs am Wickel, die einfach nicht fertig werden.
Beispiel:
Bisherige Rechenzeit: 87:29:55, Fertig: 97,757 %, Restlaufzeit: 2:00:25

Das steht jetzt so, seit ich es vor einer Stunde bemerkt habe. Das Dumme ist, dass BoincView die hohe Rechenzeit gar nicht anzeigt. Dort stehen 20 Min.
Nur weil mein output immer weiter runter ging, habe ich es überhaupt bemerkt.


Ist mir mehrfach passiert, wenn CAL "hängen" bleibt - ggf. Boinc anhalten, beenden und Boinc neustarten (ggf mind. 1 mal pro Monat PC neustarten)

Boincview zeigt ja nur cpulaufzeit, jedoch nicht (immer) GPU-Laufzeit
 
Gibts eigentlich irgendwo benchmarks zur GTX 580 was Collatz und Milky angeht?

Habe meine 5770 übrigens jetzt auf 110k am Tag getreten :D
 
Danke Crashtest

Neustart von Boinc hat natürlich geholfen. Trotzdem ärgerlich.
Ca. 450 Stunden GPU Rechenzeit für die Katz, ähm... den Kater. ;D
 
Passiert dieses "Hängenbleiben" oft?
Hatte auch grade eine WU, die schon zig Stunden gefressen hat und nach Neustart dann in Minuten gar fertig wurde.
Möchte meinen Hauptcrunchrechner da nicht ständig überwachen müssen...
 
Ist mir in den letzten Wochen 1 oder 2 mal passiert. Da ich aber sowieso vor dem Rechner sitze...
 
Ja, dass ist mir auch schon passiert. Aber eine andere Frage:

Ich habe mein MilkyWay Projekt durch die app_info.xml so eingestellt, dass es die GPU zu 90% und nicht 99% belastet. Kann ich das auch mit CC machen? Ich habe bis jetzt noch nicht gefunden.
 
Ja, dass ist mir auch schon passiert. Aber eine andere Frage:

Ich habe mein MilkyWay Projekt durch die app_info.xml so eingestellt, dass es die GPU zu 90% und nicht 99% belastet. Kann ich das auch mit CC machen? Ich habe bis jetzt noch nicht gefunden.
hier gibts die opti Apps. Sind zwar die gleichen die auch vom Projekt verteilt werden zusätzlich sind aber app_info.xmls dabei. Da kannst Du wie bei MW die Dir zusagenden Einstellungen treffen.

http://boinc.thesonntags.com/collatz/power_apps.php
 
Code:
        case 12:
            gpu_name="AMD Fusion (Wrestler)";
            break;
        case 13:
            gpu_name="AMD Sumo";
            break;
        case 14:
            gpu_name="AMD Supersumo";
            break;
        case 17:
            gpu_name="ATI Radeon HD6800 series (Barts)";
            break;

Aber wie gesagt, da fehlen einige ASIC-Gruppen, 15+16 ggf 18...
für CAYMAN / ANTILLES / BLACKCOMB / TURKS / SEYMOUR / CAICOS ???
17 ist Barts, 18 Turks, 19 Caicos, mehr gibt es erst mal nicht (Tagret-ID 20 ist ungültig für den Shadercompiler). Für die IDs 15 und 16 spuckt der Shadercompiler Code für die VLIW4-Architektur aus, das sind also Cayman + irgendein Derivat (Trinity als APU mit Bulldozer-Kernen und VLIW4-Shadern? Ansonstens ist Trinity wohl 14=Supersumo) davon. Die mobilen SKUs bekommen wohl wieder die gleichen IDs wie die Desktop-Counterparts. Sumo ist übrigens die Grafik in Llano, Wrestler die in Ontario/Zacate. Double Precision-fähig sind übrigens nur die IDs 15 und 16.
 
Zuletzt bearbeitet:
17 ist Barts, 18 Turks, 19 Caicos, mehr gibt es erst mal nicht (Tagret-ID 20 ist ungültig für den Shadercompiler). Für die IDs 15 und 16 spuckt der Shadercompiler Code für die VLIW4-Architektur aus, das sind also Cayman + irgendein Derivat (Trinity als APU mit Bulldozer-Kernen und VLIW4-Shadern? Ansonstens ist Trinity wohl 14=Supersumo) davon. Die mobilen SKUs bekommen wohl wieder die gleichen IDs wie die Desktop-Counterparts. Sumo ist übrigens die Grafik in Llano, Wrestler die in Ontario/Zacate. Double Precision-fähig sind übrigens nur die IDs 15 und 16.

Na toll - SDK 2.3 :

typedef enum CALtargetEnum {
CAL_TARGET_600, /**< R600 GPU ISA */
CAL_TARGET_610, /**< RV610 GPU ISA */
CAL_TARGET_630, /**< RV630 GPU ISA */
CAL_TARGET_670, /**< RV670 GPU ISA */
CAL_TARGET_7XX, /**< R700 class GPU ISA */
CAL_TARGET_770, /**< RV770 GPU ISA */
CAL_TARGET_710, /**< RV710 GPU ISA */
CAL_TARGET_730, /**< RV730 GPU ISA */
CAL_TARGET_CYPRESS, /**< CYPRESS GPU ISA */
CAL_TARGET_JUNIPER, /**< JUNIPER GPU ISA */
CAL_TARGET_REDWOOD, /**< REDWOOD GPU ISA */
CAL_TARGET_CEDAR, /**< CEDAR GPU ISA */
CAL_TARGET_RESERVED0,
CAL_TARGET_RESERVED1,
CAL_TARGET_WRESTLER, /**< WRESTLER GPU ISA */
CAL_TARGET_CAYMAN, /**< CAYMAN GPU ISA */
CAL_TARGET_RESERVED2,
CAL_TARGET_BARTS, /**< BARTS GPU ISA */
} CALtarget;

Fazit:

Code:
        case CAL_TARGET_600:
            gpu_name="ATI Radeon HD 2900 (RV600)";
            break;
        case CAL_TARGET_610:
            gpu_name="ATI Radeon HD 2300/2400/3200 (RV610)";
            attribs.numberOfSIMD=1;        // set correct values (reported wrong by driver)
            attribs.wavefrontSize=32;
            break;
        case CAL_TARGET_630:
            gpu_name="ATI Radeon HD 2600 (RV630)";
            // set correct values (reported wrong by driver)
            attribs.numberOfSIMD=3;
            attribs.wavefrontSize=32;
            break;
        case CAL_TARGET_670:
            gpu_name="ATI Radeon HD 3800 (RV670)";
            break;
        case CAL_TARGET_710:
            gpu_name="ATI Radeon HD 4350/4550 (R710)";
            break;
        case CAL_TARGET_730:
            gpu_name="ATI Radeon HD 4600 series (R730)";
            break;
        case CAL_TARGET_7XX:
            gpu_name="ATI Radeon (RV700 class)";
            break;
        case CAL_TARGET_770:
            gpu_name="ATI Radeon HD 4700/4800 (RV740/RV770)";
            break;
        case 8:
            gpu_name="ATI Radeon HD 5800 series (Cypress)";
            break;
        case 9:
            gpu_name="ATI Radeon HD 5700 series (Juniper)";
            break;
        case 10:
            gpu_name="ATI Radeon HD 5x00 series (Redwood)";
            break;
        case 11:
            gpu_name="ATI Radeon HD 5x00 series (Cedar)";
            break;
       case 12:
            gpu_name="AMD RESERVED0";
            break;
        case 13:
            gpu_name="AMD RESERVED1";
            break;
        case 14:
            gpu_name="AMD Fusion APU (WRESTLER)";
            break;
        case 15:
            gpu_name="AMD Radeon HD 6900 series (CAYMAN)";
            break;
        case 16:
            gpu_name="AMD RESERVED2";
            break;
        case 17:
            gpu_name="AMD Radeon HD 6800 series (Barts)";
            break;
        case 18:
            gpu_name="AMD Radeon HD 6?00 series (Turks)";
            break;
        case 19:
            gpu_name="AMD Radeon HD 6?00 series (Caicos)";
            break;
        default:
            gpu_name="ATI unknown";
            break;

könnte man direkt in BOINC einbauen ( http://boinc.berkeley.edu/svn/trunk/boinc/client/coproc_detect.cpp ) oder ?
 
Zuletzt bearbeitet:
Nachtrag :

Ist zwar einwenig OT - aber es ist nu im Boinc-Source

http://boinc.berkeley.edu/svn/trunk/boinc/checkin_notes


David 17 Dec 2010
- client: improve text of "message from server" notices
- manager: change "add account manager" to "use account manager".
"Add" is confusing, because you can't add multiple account managers
like you add projects.
- client: recognize a few new ATI GPU models
from [P3D] Crashtest
client/
client_msgs.cpp
coproc_detect.cpp
cs_scheduler.cpp
clientgui/
AccountInfoPage.cpp
WelcomePage.cpp

David 17 Dec 2010
- API: small tweak that should help narrow down the occasional crashes
in fprintf() and boinc_msg_prefix() seen by E@h

api/
boinc_api.cpp
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten