1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Andy

Beiträge von Andy

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 21. August 2012 um 19:05

    ok, könntet ihr zwei mal die Konsolenausgabe posten?
    bzw. habt ihr mal getestet, ob das Script auch im 32-Bit-Modus läuft?

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 21. August 2012 um 17:11

    Hi,
    name22 & Blume
    Welche CPU habt ihr?

    Hab im Startpost einen Minitreiber für Intel-Prozessoren verlinkt.

    Zitat von name22

    Irgendwie krass wie weit mein Ergebnis vor den anderen liegt . Sind wohl alles Laptops gewesen...

    Nö, genau aus diesem Grund werden diese Grafikkarten ja als Cluster zum Berechnen von z.B. Wetterdaten eingesetzt.
    Viele Compute-Units und hoher Takt = viel Power^^
    Eine ATI Radeon 5870 hat bspw. 20 Compute-Units. Jede Compute Unit (oder SIMD-Unit) besteht aus 16 Cores die wiederum je 5 Recheneinheiten (Processing Elements) haben. Insgesamt hat die Karte also 20x16x5=1600 Prozessoren, die ALLE PARALLEL den Kernel abarbeiten können....da macht es auch nichts, wenn der Takt bissl niedriger ist als bei einer CPU.

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 20. August 2012 um 22:35

    Hi,
    thx fürs testen, werde auch noch die SIMD-Kernel als 2. Testlauf einbinden, bei den Grafikkarten wird das kaum einen Unterschied machen, aber bei den CPU´s werden die SIMD-Kernel dank SSE sicher schneller laufen.

    UEZ, gute Idee mit den 1k-Demos :thumbup:
    Da sich die Syntax von Javascript und C im Bereich der "Rechnerei" nicht großartig unterscheidet, sollte das machbar sein, ggf ein Script, dass das JS direkt in einen CL-Kernel überträgt 8o

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 20. August 2012 um 21:59

    Hi,
    Win64 ist da Stichwort....
    Ich habe, da durch ASM an 32-Bit-Umgebungen gewöhnt, daraufhin die Funktionen gebastelt.
    Es gibt in AutoIt allerdings den DatenTyp INT_PTR, der je nach System entweder 32 oder 36 Bit breit ist.
    Ich habe schon angefangen, sämtliche Funktionen anzupassen, so dass diese auch in 64 Bit-umgebung ohne Änderung laufen.

    Vorabversion zum Testen:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Btw. wieso kann ich diese Datei als 7z hochladen aber als ZIP nicht?

    Dateien

    Devices64.7z 16,11 kB – 384 Downloads
  • Neues Control: Living Graph

    • Andy
    • 20. August 2012 um 14:55
    Zitat von GTASpider

    Die Perfomance ist schon ziemlich super, aber hat jemand ne Idee wie man es eventuell noch schneller bekommen könnte? Wahrscheinlich nicht mit den GDI Befehlen von AutoIt, die haben ja so ihre Limits.

    Hab _DRAW() mal geprofiled. Zeiten in Millisekunden

    Code
    @@ Debug(347) : $m fillrect = 3.6827365678302
    
    
    @@ Debug(366) : $m helplines = 15.7890186159183
    
    
    @@ Debug(372) : $m UEZ= 0.406669079814119
    
    
    @@ Debug(379) : $m line = 1.97179548428792
    
    
    @@ Debug(383) : $m image = 50.2327905705531
    
    
    @@ Debug(60) : $mm = DRAW  74.295876302257
    Alles anzeigen

    Wie man deutlich sieht, wird der Löwenanteil der Zeit von

    [autoit]

    _GDIPlus_GraphicsDrawImage($oBuffer.Item('Graphics'), $oBuffer.Item('Bitmap'), $oCtrl.Item('X'), $oCtrl.Item('Y'))

    [/autoit]

    verbraten, gefolgt von den Hilfslinien , der Rest innerhalb der Funktion ist zeitlich zu vernachlässigen.

    Ja, bei Verwendung von GDI+-Funktionen ist nicht mehr viel zu machen.....unabhängig von AutoIt!

  • OpenCV meets AutoIt

    • Andy
    • 20. August 2012 um 14:38

    Naja, so wie das für mich aussieht, werden doch einfach nur die beiden RECT miteinander verknüpft, wobei RECT_b eine Konstante ist

    also einfaches Umsetzen von AspirinJunkies Code

    Spoiler anzeigen
    [autoit]

    #include <Math.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;konstante
    const $rect_const=dllstructcreate("uint x; uint y; uint cols; uint rows")
    dllstructsetdata($rect_const,"cols",100)
    dllstructsetdata($rect_const,"rows",200)

    [/autoit] [autoit][/autoit] [autoit]

    ;
    $rect1=dllstructcreate("uint x; uint y; uint width; uint height")
    dllstructsetdata($rect1,"x",10)
    dllstructsetdata($rect1,"y",20)
    dllstructsetdata($rect1,"width",100)
    dllstructsetdata($rect1,"height",200)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $select=dllstructcreate("uint x; uint y; uint width; uint height")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $select=_select_und($rect1)

    [/autoit] [autoit][/autoit] [autoit]

    $x=dllstructgetdata($select,"x")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $x = ' & $x & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $y=dllstructgetdata($select,"y")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $y = ' & $y & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $width=dllstructgetdata($select,"width")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $width = ' & $width & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $height=dllstructgetdata($select,"height")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $height = ' & $height & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func _select_und($rect)
    $a_x=dllstructgetdata($rect,"x")
    $a_y=dllstructgetdata($rect,"y")
    $a_width=dllstructgetdata($rect,"width")
    $a_height=dllstructgetdata($rect,"height")

    [/autoit] [autoit][/autoit] [autoit]

    $b_x=dllstructgetdata($rect_const,"x")
    $b_y=dllstructgetdata($rect_const,"y")
    $b_width=dllstructgetdata($rect_const,"cols")
    $b_height=dllstructgetdata($rect_const,"rows")

    [/autoit] [autoit][/autoit] [autoit]

    ;if( a.width <= 0 || a.height <= 0 ) a = Rect();
    if $a_width<=0 or $a_height<=0 then return $rect

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; _Tp x1 = std::max(a.x, b.x), y1 = std::max(a.y, b.y);
    $x1=_max($a_x,$b_x)
    $y1=_max($a_y,$b_y)

    [/autoit] [autoit][/autoit] [autoit]

    ;a.width = std::min(a.x + a.width, b.x + b.width) - x1;
    $a_width=_min($a_x+$a_width, $b_x+$b_width)-$x1

    [/autoit] [autoit][/autoit] [autoit]

    ;a.height = std::min(a.y + a.height, b.y + b.height) - y1;
    $a_height = _min($a_y + $a_height, $b_y + $b_height) - $y1;

    [/autoit] [autoit][/autoit] [autoit]

    ; a.x = x1; a.y = y1;
    dllstructsetdata($rect,"x",$x1)
    dllstructsetdata($rect,"y",$y1)
    dllstructsetdata($rect,"width",$a_width)
    dllstructsetdata($rect,"height",$a_height)
    ;if( a.width <= 0 || a.height <= 0 ) a = Rect();
    return $rect

    [/autoit] [autoit][/autoit] [autoit]

    endfunc

    [/autoit]


    wobei ich aber zugeben muss, mit Objekten wäre das ein einfaches C&P

  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 20:40

    In Bingen bei der letzten Breakpoint gabs eigentlich auch nicht viel zu kapieren, alleine der Anblick der völlig abgedunkelten Halle mit tausenden von Rechnern mit davor sitzenden Freaks und vorne über der Bühne die 8x5m Leinwand, die von einem FullHD-Beamer befeuert wurde, wars wert :thumbup:

    Mit welchen Geräten die Grafik und Sound produziert haben, das war echt der Hammer! Vom 30 Jahre alten Taschenrechner über gecrackte Spielkonsolen (Gameboy) bis zu den Oldies der Computerbranche. Auch nagelneue Hochleistungsrechner wie iBooks und tonnenschwere Alienware-Maschinen waren natürlich vertreten.
    Da gabs Events, da mussten Demos innerhalb von STUNDEN erstellt werden zu einem bestimmten Thema, manche haben auf dem Weg zur Jury noch am code rumgehackt^^

    Sicher werden demnächst auch andere interessante Platformen wie z.B. Arduino, und Konsorten vertreten sein!

  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 20:13
    Zitat

    @Xor. Das sind weise Erwachsene Männers.

    Yo, die sind so alt, die denken bei AMIGA an was anderes als an "Freundin"^^, vor allem, wenn sie sich in einem Computer-affinen Forum rumtreiben *grööööööhhhllll* MADE MY DAY :rofl::rofl::rofl::rofl::rofl::rofl::rofl:

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 19. August 2012 um 19:34

    ich bring mal den Startpost auf den neuesten Stand, gerade was die intel-mini-Treiber betrifft

  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 16:08

    Lass mal stecken, Ostern auf ner 125er braucht kein Mensch...kannst zu mir kommen, biste ca. in 2h, und dann kannste auf dem weiteren Weg wieder auftauen :rofl:

  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 15:51

    Mein Angebot steht, 2-3 Leute auf dem Weg dahin "einzusammeln".
    2 Tage sollte man aber mindestens einplanen...

  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 14:32
    Zitat von UEZ

    Ich glaube, dach mache ich wieder mit! Scheiß auf die Entferung!

    Gut, abgemacht, ich hol dich dann ab, ob man 500km fährt oder 600 ist für mich egal :thumbup:
    Mal sehen, vielleicht bekommen wir ne Übernachtung hin, dass es sich lohnt, und können den einen oder anderen AutoIt-ler aktivieren^^

  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 14:02

    UEZ,
    bin zzt im Urlaub, jetzt glücklicherweise mit UMTS-Verbindung^^.
    Hatte in dieser Woche zufällig ein Gespräch mit einem "Programmierer" abends in einer Hotelbar, da liefen auf einem Monitor irgendwelche Videos. Er meinte, was alles an Rechenpower und Knowhow nötig wären um die Grafiken zu erstellen, und ich hab nur beiläufig gesagt, ein "ordentlicher" Programmierer packt das in eine Handvoll Codebytes 8o
    Sein Kumpel fühlte sich gleich angepisst und fing an zu labern, da bin ich ins Hotelzimmer geflitzt und hab den Laptop geholt und denen die von dir verlinkte Site gezeigt.
    Die wollten sich dann die Videos auf Youtube angucken, aber bei GPRS funzt das ja nicht, also hab ich die 4K-files einfach downgeloadet...hat bissl gedauert, jetzt haben die gedacht, die 4k-Files wären ein Download-Programm für die komprimierten Grafiken, ich hab dermasssen lachen müssen^^
    Jedenfalls waren die zwei total begeistert und es sind etliche Biers getrunken worden. Bestimmt haben die den Rest der Nacht Demos geladen. :rofl:
    Am nächsten Morgen beim Frühstück haben wir ausgemacht, uns nächstes Ostern in Saarbrücken zu treffen :D

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 19. August 2012 um 13:35

    Hi,
    habe mal auf die Schnelle ein Anzeigescript zusammengehackt, dass ich benutze, um auf anderen Rechnern die Verfügbarkeit und die Geschwindigkeit von OpenCL-fähigen Geräten zu ermitteln. Bitte mal testen und ggf Fehlermeldungen posten. Zur Geschwindigkeitsermittlung habe ich einen Ausschnitt der Mandelbrotmenge in entsprechende Auflösung gewählt, um Speichertransfer und Geschwindigkeit bei den Berechnungen wenigstens ansatzweise bewerten zu können.
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Laptop AMD mit Quadcore und integriertem Grafikprozessor, externer Grafikprozessor.
    //EDIT man sollte die 4 Cores nicht mit 400Mhz laufen lassen....

    Die folgenden Files sind teilweise angepasst/modifiziert/weiterentwickelt.
    Programm:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Include-files:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    Devices.au3 19,8 kB – 422 Downloads opencl_easy.au3 12,71 kB – 391 Downloads opencl_inc.au3 30,88 kB – 367 Downloads Devices.jpg 29,82 kB – 0 Downloads
  • Kleinster HD-Kurzfilm

    • Andy
    • 19. August 2012 um 12:50

    Naja,
    den "geistigen Erguss", eine Handvoll Nullen so zu Packen, dass beim Entpacken einige Handvoll mehr Nullen da sind, kommentiere ich mal nicht.
    Dafür aber 42 kB zu verbrauchen bewerte ich gelinde gesagt als absolutes programmiertechnisches Armutszeugnis!

    Wer einen Sudoku-solver in 62 Bytes packt, der erledigt "ich schreib den Speicher/Platte voll mit Nullen" mit einer Handvoll Bytes.
    Btw. reicht dafür ein einziger API-Call. "Können" ist dafür definitiv keins erforderlich.
    Daher treffen sich Leute, die es drauf haben, z.B. bei internationalen Events wie diesem in Saarbrücken, dort kann man nur noch staunen, was man mit entsprechendem knowHow alles auf einen Monitor bzw. aus dem Lautsprecher bekommt. Auf der letzten Breakpoint in Bingen war ich mit UEZ zusammen, DA wurde gezeigt, wo bei Grafiken der Hammer hängt...
    Bei solchen Partys findet man auch keine Scriptkiddies^^....wie gesagt, C&P gepaart mit Halbwissen und sozialer Unintelligenz reicht definiv nicht aus, um einen Hund hinter dem Ofen hervorzulocken.

  • Beste Programmiersprache um DLLs zu erstellen

    • Andy
    • 19. August 2012 um 00:08
    Zitat

    AutoIt ist eine Hochsprache.

    knochentrocken :thumbup:
    Jetzt kann ich seelig einschlummern.....und von "Hochsprachen" träumen ;)

  • Beste Programmiersprache um DLLs zu erstellen

    • Andy
    • 18. August 2012 um 23:40
    Zitat von SchachMuschi

    Vom Prinzip her ist eine Hochsprache trotzdem ne ganz andere Geschichte als AutoIt.

    wieso?
    Solange es wirklich nicht um die letzte Millisekunde geht, macht AutoIt eine ausgezeichnete Figur!
    Wenn aus Geschwindigkeitsgründen nötig, kann man den "inner loop" in einer Dll-Funktion in einer x-beliebigen Hochsprache umsetzen und 95% des AutoIt-Codes incl. aller seiner Vorteile übernehmen.

  • Beste Programmiersprache um DLLs zu erstellen

    • Andy
    • 18. August 2012 um 22:28

    Naja,
    AutoIt ist ein "Basic-ähnlicher" Dialekt, von daher sollte man eigentlich mit allen Basic-ähnlichen Sprachen und deren Compilern zurechtkommen.
    Freebasic ist relativ einfach, Eukalyptus hat damit schon einige feine Dll´s erstellt.
    Hier gibts übrigens einen Geschwindigkeitsvergleich, wen wundert´s, dass mit Assembler erstellte Dll´s am schnellsten (und am kleinsten) sind :rofl:
    Wenns wirklich nicht auf die letzte Millisekunde ankommt, würde ich persönlich Freebasic nehmen. Der Compiler erstellt schnellen und vor allem kompakten Code, ohne ein Codemonster wie VC++ installieren zu müssen.
    Wer allerdings auf die Goodies des MS-Studios abfährt (so wie auch ich , der Profiler ist einfach nur GEIL :thumbup: ), der sollte VC++ oder Visualbasic testen. Wobei es imho
    völlig egal ist, ob man in C++ oder VisualBasic programmiert, der Compiler erstellt idr. denselben performanten Code!

  • Mutex frage

    • Andy
    • 18. August 2012 um 19:39
    Zitat

    Weiß nur, dass Mutex ja verhindern sollen, dass es Diskrepanzen gibt, dadurch, dass auf bestimme "Dinge" mehrfach zugegriffen werden kann?!

    nein, nicht mehrfach sondern gleichzeitig.
    Dann muss z.B. sichergestellt sein, dass bei 3 Threads, die gleichzeitig einen bestimmten Speicherbereich bearbeiten (lesen+verändern+schreiben) die Daten nach jedem Lese/Schreibzyklus konsistent sind. Heisst in diesem Fall, solange EIN Thread Daten bearbeitet, müssen die anderen beiden warten....bearbeiten die Threads unterschiedliche Speicherbereiche, dann können sie gleichzeitig arbeiten.
    Um festzustellen, ob ein Programm mehrfach gestartet wurde, benutzt man sicherlich kein Mutex :D

  • Kleinster HD-Kurzfilm

    • Andy
    • 18. August 2012 um 19:09

    Hi,
    ich hol den Thread mal aus dem Keller, hab eben im ASM-Forum einen Thread gefunden, mit einer BANDIT-Formel^^

    Mit bissl Phantasie erkennt man einen mexikanischen Banditen mit Sombrero, hab mal die Augen und den Mund ergänzt, färb das mal jemand ein....

    Spoiler anzeigen
    [autoit]

    $user32 = DllOpen("user32.dll")
    $gdi32 = DllOpen("gdi32.dll")
    $w = 640
    $h = 480

    [/autoit] [autoit][/autoit] [autoit]

    Global $pi = 4 * ATan(1)

    [/autoit] [autoit][/autoit] [autoit]

    $hgui = GUICreate("Bandit", $w, $h)
    $hdc_gui = getdc($hgui)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $radian = ATan(1) / 45
    $radius = 125
    $col = 0;0xFF00FF0F
    For $deg1 = 0 To 360 Step 1

    [/autoit] [autoit][/autoit] [autoit]

    $c1 = Cos($deg1 * $radian)
    $s1 = Sin($deg1 * $radian)

    [/autoit] [autoit][/autoit] [autoit]

    $x1 = $radius * $c1
    $y1 = $radius * $s1

    [/autoit] [autoit][/autoit] [autoit]

    pix($hdc_gui, $w / 2 + $x1 / 5 - 50, $h / 2 + $y1 / 10, $col);auge
    pix($hdc_gui, $w / 2 + $x1 / 5 + 50, $h / 2 + $y1 / 10, $col)

    [/autoit] [autoit][/autoit] [autoit]

    pix($hdc_gui, $w / 2 + $x1 / 15 - 45, $h / 2 + $y1 / 15 + 5, $col);pupille
    pix($hdc_gui, $w / 2 + $x1 / 15 + 45, $h / 2 + $y1 / 15 + 5, $col)

    [/autoit] [autoit][/autoit] [autoit]

    pix($hdc_gui, $w / 2 + $x1 / 20 - 45, $h / 2 + $y1 / 20 + 5, $col);pupille2
    pix($hdc_gui, $w / 2 + $x1 / 20 + 45, $h / 2 + $y1 / 20 + 5, $col)

    [/autoit] [autoit][/autoit] [autoit]

    pix($hdc_gui, $w / 2 + $x1 / 1.4, $h / 2 + $s1*$y1 / 2 + 100, $col);mund
    pix($hdc_gui, $w / 2 + $x1 / 1.2, $h / 2 + $s1*$y1 / 2 + 90, $col);mund

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $deg2 = 0 To 360 Step .5

    [/autoit] [autoit][/autoit] [autoit]

    $c2 = Cos($deg2 * $radian)
    $s2 = Sin($deg2 * $radian)

    [/autoit] [autoit][/autoit] [autoit]

    $x2 = $radius * $c2 * $c2 * Cos(Cos($deg2 * $s1 * $c2 * $radian) * $c1) * $c2 * $c2 / $c1 * $s1 * Cos($deg2 * $radian * $c1)
    $y2 = $radius * $s2 * $s2 * Sin(Cos($deg2 * $c1 * $s2 * $radian) * $s1) * $s2 * $s2 / $s1 * $s1 * Sin($deg2 * $radian * $s1)
    ; $col = Int($c2 * $x2 * $deg2 ^ 2 + $s2 * $y2 * $deg2 ^ 2)
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $col = ' & $col & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    pix($hdc_gui, $w / 2 + $x1 + $x2, $h / 2 + $y1 + $y2, $col)
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg() <> -3
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func atan2($y, $x)
    Return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y))))
    EndFunc ;==>atan2

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func pix($dc, $x, $y, $color) ;pixel mit farbe an koordinaten setzen
    DllCall($gdi32, "long", "SetPixel", "long", $dc, "long", $x, "long", $y, "long", $color)
    EndFunc ;==>pix

    [/autoit] [autoit][/autoit] [autoit]

    Func GetDC($handle)
    $dc = DllCall($user32, "int", "GetDC", "hwnd", $handle)
    Return $dc[0]
    EndFunc ;==>GetDC

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™