AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 64 Bit langsamer als 32 Bit

Ein Thema von BigAl · begonnen am 6. Aug 2013 · letzter Beitrag vom 12. Aug 2013
Antwort Antwort
Seite 8 von 8   « Erste     678
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#71

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 09:26
Um mal noch kurz einzustreuen, wie das bei Free Pascal ist:
Sind Anwendungen, wie die des Threaderstellers, eigentlich eine Zielgruppe für Pascal Compiler Entwickler ?

Leute die solche Berechnungen mit Millionen Daten und Millarden Operationen darauf machen, haben ja meist dicke Rechner mit mehreren Prozessoren. (GPUs usw. lassen wir mal ganz außen vor.) Bei den oben erwähnten C++ Lösungen dafür hat man ja heute Libs zum z.B. große Arrays auf CPUs zu partitionieren und hinterher die Teillösungen zusammenzubringen.
Es sehe hier durchaus Anwendungsmöglichkeiten für Pascal Compiler. Aktuell ist FPC und vielleicht auch die Laufzeitbibliothek nicht unbedingt darauf ausgelegt, aber das heißt ja nicht, dass das so bleiben muss. Vor allem bei einem Open Source Projekt, wo jeder was beitragen kann.
Meine Idee ist zum Beispiel die Funktionalität von Vector Pascal in FPC zu integrieren, was eine native Nutzung von SIMD Units ermöglichen würde (FPC unterstützt zwar aktuell SIMD Instructions, wendet die aber nur für einzelne Werte an, also eher als FPU-Ersatz). Dann müssten auch noch ein paar Optimierungen her wie Auto Vectorizing oder sonstige Nettigkeiten, wie sie LLVM zur Zeit bekommt. Vielleicht auch ein paar Threading Erweiterungen wie sie Oxygene kennt (z. B. parallel for ).

Sind die Delphi/Pascal Lösungen dafür Assemblerroutinen und Threads ? Tiling, Loadbalancing usw. alles händisch ? Arbeitet nicht die Zeit gegen solche Lösungen ? Es gibt schliessich immer mehr Kerne auf CPUs, die aber einzeln nicht schneller werden.
Meine Anmerkung mit Assembler betraf zwei Grundroutinen, die sehr häufig implizit aufgerufen werden. Wenn die nicht schnell sind, dann bringt dir auch die ganze sonstige Optimiererei nicht allzu viel. Und auch wenn natürlich der Compiler auch entsprechend optimieren können muss gibt es hier und da Routinen wo es besser ist, wenn man von Hand ne Assemblerroutine schreibt (eben zum Beispiel diese beiden besagten Routinen FillChar und Move ), da hierdurch Prozessorbefehle verwendet werden können, die der Compiler normalerweise nicht verwendet (ein Compiler reizt das Instruction Set eines Prozessors normal nie voll aus).
Was aktuell (zumindest so weit ich das Überblicke) allerdings tatsächlich noch fehlt sind Frameworks (ich nenn es mal einfach so), die einem das Arbeiten mit und Verwalten von vielen Threads abnehmen (du magst das nennen wie du willst, aber von der OS Perspektive her sind es am Ende immer noch Threads, die da parallel laufen).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#72

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 09:39
Was aktuell (zumindest so weit ich das Überblicke) allerdings tatsächlich noch fehlt sind Frameworks (ich nenn es mal einfach so), die einem das Arbeiten mit und Verwalten von vielen Threads abnehmen
Wobei die OmniThreadLibrary dabei durchaus einiges an Arbeit abnimmt. Ob die auch für solche massiven Berechnungen sinnvoll nutzbar ist, kann ich nicht sagen, dafür kenne ich beides zu wenig.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#73

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 09:49
Es sehe hier durchaus Anwendungsmöglichkeiten für Pascal Compiler.
Vielen Dank dafür, dass Du geantwortet hast.

In diese Richtung zielte ja meine Frage. Warum sollte man es nicht in Pascal machen können, wenn man es z.B. in Matlab hinkriegt. Gerade für solche mathematischen Sachen ist die Pascal-Syntax doch sehr lesbar.

Im Grunde geht es ja nur darum, die Fähigkeiten aktueller Hardware auszunutzen. Diese riesigen Datenstrukturen des Threaderstellers kann man am besten bearbeiten, wenn man vorgeht, wie wenn man mit vielen Mähdreschern ein großes Kornfeld mäht. Man stellt alle in eine Reihe und fährt drüber, zusätzlich macht die Vektorisierung quasi jeden Mähdrescher breiter. Sowas kann man in Delphi derzeit nicht wirklich gut ausdrücken, und nur darum ging es mir.

Es geht schliesslich darum, dass Berechnungen statt Stunden möglicherweise nur Minuten dauern. Statt zu sagen, "Oh, da haben wir ein Defizit" zu sagen "wir machen das aus sentimentalen Gründen" finde ich, bestenfalls, besorgniserregend. Aber so scheinen die Leute heute eingestellt zu sein, die bei Delphi geblieben sind. Schade.

[Edit]
Ja, Vector Pascal geht offensichtlich in die Richtung, die ich meine.

Geändert von Robotiker ( 9. Aug 2013 um 09:55 Uhr)
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#74

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 10:00
Wobei die OmniThreadLibrary dabei durchaus einiges an Arbeit abnimmt. Ob die auch für solche massiven Berechnungen sinnvoll nutzbar ist, kann ich nicht sagen, dafür kenne ich beides zu wenig.
Ja, das legt zumindest den nächsten Level, man hat nicht mehr nur TThread.

Aber so was wäre schön (einfach die Diagramme anschauen, den Code ignorieren):
http://www.parallel-universe-online....123-flow-graph

[Edit]
Sollte aber eigentlich mit dem neuen Compiler im Builder irgendwann verwendbar sein.

Geändert von Robotiker ( 9. Aug 2013 um 10:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#75

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 11:49
Was aktuell (zumindest so weit ich das Überblicke) allerdings tatsächlich noch fehlt sind Frameworks (ich nenn es mal einfach so), die einem das Arbeiten mit und Verwalten von vielen Threads abnehmen
Wobei die OmniThreadLibrary dabei durchaus einiges an Arbeit abnimmt. Ob die auch für solche massiven Berechnungen sinnvoll nutzbar ist, kann ich nicht sagen, dafür kenne ich beides zu wenig.
Ne Portierung der OmniThreadLibrary für FPC wäre auch mal was...

Aber so was wäre schön (einfach die Diagramme anschauen, den Code ignorieren):
http://www.parallel-universe-online....123-flow-graph
Sowas in Pascal zu implementieren wäre durchaus auch mal interessant.

So viele schöne Projekte, die man angehen könnte und so wenig Zeit... *seufz*

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#76

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 12:44
Klingt wie Concurrent Pascal oder SuperPascal.
Eine entsprechende Erweiterung für Delphi FPC wäre sicherlich nicht schlecht.
Markus Kinzler
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#77

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 10. Aug 2013, 14:21
Generelle Überlegung: 16 bit ist schneller als 32 bit, 32 bit ist schneller als 64 bit. Trotzdem wurde nach 16 bit 32 bit eingeführt. Vorteil: Der Scrollbalken hat bei längeren Seiten kein Range-error ausgelöst. Und man konnte mehr Speicher adressieren. Alles hat Vor- und Nachteile. Es gibt ein paar Themen in der Mathematik, da sind 32 bit der reine Horror. Von daher kann 64 bit oder noch besser 128 bit nicht schnell genug kommen. Auch wenn 128 bit für 99% aller Computerbenutzer Perlen vor die Säue wäre.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#78

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 12. Aug 2013, 09:56
Auch wenn 128 bit für 99% aller Computerbenutzer Perlen vor die Säue wäre.
IMHO laufen doch GPUs mit 128 Bit...insofern sind alle Gamer total begeistert davon, und die machen mehr als 1% der Computernutzer aus

Aber das nur als Zwischenruf...

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#79

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 12. Aug 2013, 10:02
IMHO laufen doch GPUs mit 128 Bit...insofern sind alle Gamer total begeistert davon,
Das ist aber die Busbreite Speicherinterface und nicht die Anzahl der Bits die für die Adressierung verwendet wird.
Und über eine 128 Bit Grafikkarte gähnen alle Hardcoregamer da die besseren Grafikkarten schon bei 384 Bit angekommen sind
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#80

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 12. Aug 2013, 10:58
ts ts ts

was man alles durcheinanderwürfeln kann - Operandenbreite CPU, Operandenbreite SIMD (hier auch gern über alle Operanden), Adressbreite logisch ,Adressbreite physisch implementiert, Datenbusbreite intern, Datenbusbreite extern ...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz