Viviado braucht ewig zum synthetisieren

Gast #5748502
Lesenswert?

Hi,

ich benutze für Privat das Vivado v2018.3 (64-bit) (Webversion) auf 
Ubuntu.
Beim Synthetisieren von einem Counter schlafe ich glatt ein so ewig 
dauert es. AUffällig lang hält es sich bei dem Schritt "Running 
write_bitstream" auf. Gibt es möglichkeiten diesen Vorgang etwas zu 
beschleunigen?

übrigens, das synthetisieren dauert bei mir 4 minuten und das  obwohl 
meine CPU's sich langweilen.
#5748527
Lesenswert?

Bei Vivado hilft es oft nur die Single-Thread Performance zu erhöhen, 
sprich CPU mit viel GHz kaufen.
4 Minuten ist ja noch nicht viel... ich warte selbst mit einem Core i7 
mit 3.5 GHz manchmal 30 Minuten für einen Durchlauf. Hängt natürlich vom 
FPGA und dessen Komplexität ab. Nicht alles lässt sich parallelisieren. 
Auf jeden Fall solltest du dir mal "set_param general.maxThreads" 
angucken
#5748601
Lesenswert?

Vivado schrieb:
> übrigens, das synthetisieren dauert bei mir 4 minuten
> und das obwohl meine CPU's sich langweilen.

Wenn im FPGA noch genug Platz ist, dann geht die Synthese meiner 
Erfahrung nach recht schnell (ein paar Minuten ist "recht schnell"). In 
dem Augenblick, wo der FPGA langsam voll wird, explodieren die Zeiten - 
auch dann, wenn das Timing äußerst unkritisch ist.

Will man das Design dann noch beschleunigen, hilft nur viel Geduld. 
Zumindest in der Webpack-Version sind nur sehr wenige Prozeßschritte 
parallelisert. Wenn man stattdessen mehrere Synthesen gleichzeitig 
laufen lassen könnte, hätte man wenigstens was davon...
#5748674
Lesenswert?

Tobias B. schrieb:
> Christian R. schrieb:
> 4 Minuten, pah. Lächerlich, das ist ja quasi nur Write Bitstream. :D
>
> 4 Minuten sind ja auch nur die Synthese. Vll dauert ihm auch der Rest u
> lange, das steht da mt keinem Wort. :-/

Achso, so wie er es geschrieben hatte, klang es so als würde er den 
gesamten Prozess bis zum Bitstream als Synthese bezeichnen. Write 
bitstream ist anscheinend für ihn ein Teil davon:

Vivado schrieb:
> Beim Synthetisieren von einem Counter schlafe ich glatt ein so ewig
> dauert es. AUffällig lang hält es sich bei dem Schritt "Running
> write_bitstream" auf
(Firma: www.elpra.de) Persönliche Seite #5749316
Lesenswert?

Christian R. schrieb:
> Achso, so wie er es geschrieben hatte, klang es so als würde er den
> gesamten Prozess bis zum Bitstream als Synthese bezeichnen. Write
> bitstream ist anscheinend für ihn ein Teil davon:

Ja, ist irgendwie nicht eindeutig. Es fehlen auch ein paar Infos, z.B. 
ob Batch oder GUI Mode verwendet wurde oder wie lange die einzelnen 
Teilprozesse dauern.

Das Projekt mal anderen zur Verfuegung zu stellen koennte auch helfen. 
Dann kann jeder der Interesse hat ein Bitfile generieren und berichten 
ob es unerwartet lange dauerte.
Gast #5749856
Lesenswert?

Ich arbeite gerade an einem Design das 90% der LUTs eines Artix7-35 
verbraucht und dabei mäßige Timing-Constraints benötigt. Vivado benötigt 
für die komplette Synthese/Implementierung/Bitfileerzeugung ca. 20min im 
Script-Mode, also ohne GUI. Zeitweise werden alle Cores verwendet, 
meistens aber nur einer, eine gute Singlecore-Performance ist bei Vivado 
also schon wichtig. Ich habe zwar keine exakten Vergleiche, aber gefühlt 
läuft Vivado im Script-Mode deutlich flotter als mit der GUI.
Gast #5750913
Lesenswert?

hi,

ich hatte es auch, dass er bei "write_bitstream" eine gefühlte Ewigkeit 
einfach "nichts" tat, keine CPU, keine Festplatte (bzw. SSD), kein 
Netzwerktraffik. Irgendwie sah es nach einem Timeout aus und 
tatsächlich, er versucht irgendeine "link-lokal" Adresse (169.254....) 
anzusprechen, die es bei nicht gibt. Ich habe diese Adresse einfach 
einer Netzwerkkarte zusätzlich gegeben und der Schritt "write_bitstream" 
lief dann erheblich schneller, auch wenn der ganze Vorgang von Synthese 
bis Bitstream einfach ätzend langsam ist.

Zum Vergleich, ich hatte mal ein gaaanz kleines VHDL Modul mit Lattice 
Diamond für einen MachXO2 und für einen Artix7-S6 übersetzten lassen: 
Lattice < 15sec, Xilinx > 4min

grüße
#5750942
Lesenswert?

daniel__m schrieb:
> MachXO2 und für einen Artix7-S6 übersetzten lassen: Lattice < 15sec,
> Xilinx > 4min

Äpfel und Birnen. MachXO2 ist ein CPLD mit einer überschaubaren Anzahl 
Makrozellen. Sowas macht Xilinx ISE bei fast leer auch in wengen 
Sekunden.

Selbst der Artix ist da wesentlich komplexer und das Erzeugen des 
Bitstreams dauert dann halt wesentlich länger.

Aber insgesamt ist die Xilinx Software schon vergleichsweise langsam. 
Das ist wahr. Wobei es sich mit Vivaro schon gebessert hat, vor allem 
wenn man die parallele CPU Nutzung auf 8 stellt.
Gast #5751025
Lesenswert?

Christian R. schrieb:
> Äpfel und Birnen. MachXO2 ist ein CPLD mit einer überschaubaren Anzahl
> Makrozellen. Sowas macht Xilinx ISE bei fast leer auch in wengen
> Sekunden.

Der MachXO2 ist schon eher ein FPGA (verwendet wurde der 4000er). Von 
den Resourcen dem A7S6 nicht unähnlich, jedenfalls rechtfertigt das 
nicht weit über Faktor 16 in der Laufzeit.

Das einzige, was ich Xilinx zugute schreibe ist, dass deren SW (Vivado, 
nicht die alte, aber schnellere ISE) auch mit wahnsinnig großen 
FPGAs/SOCs umgehen können muss. Das wird sicherlich einen trade-off 
haben, so dass kleinst-FPGAs schlecht da stehen.

Xilinx Versuch mit OOC (zumindest bei der Synthese) ist m.M.n. auch erst 
bei größeren Cores interessant, da das Starten der SW (was für jeden 
OOC-Run gemacht wird) vergleichsweise lange dauert (trotz i7700 + NVMe + 
Linux). Und bei mir immer wieder für "Spass" sorgt, so dass ich es eher 
selten nutze.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren