logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jakie parametry PC są kluczowe dla szybszej syntezy FPGA?

Pituś Bajtuś 12 Mar 2012 19:06 4376 26
  • #1 10668461
    Pituś Bajtuś
    Poziom 28  
    Każdy kto zajmuje się programowaniem FPGA/CPLD zapewne nie raz zastanawiał się, co zrobić aby skrócić czas kompilacji/syntezy/fitowania projektu. Jak zapewne wiadomo, narzędzia do syntezy (zwłaszcza te darmowe dostarczane przez producentów logiki programowalnej) nie są dostosowane do pracy wielowątkowej, tak więc współczesnie stosowane w komputerach PC procesory i ich "ficzery" w postaci wielordzeniowości połączonej z wielowątkowością (HyperThreading) wykorzystują zaledwie ułamek swoich możliwości. Oczywiście nie wpływa to pozytywnie na czas procesu syntezy. Trudno też doszukać się jakiejś korelacji pomiędzy wydajnością procesora mierzoną za pomocą wyimaginowanych syntetycznych benchmarków a ich wydajnością w syntezie logiki programowalnej. Nie mogę się również doszukać zestawienia, czy też benchmarku który ukazywałby wydajność pojedyńczego rdzenia/wątku w procesorze wielowątkowym.

    Jako że noszę się z planami upgrade komputera chciałbym zaproponować Wam pewien eksperyment. Jego wyniki pomogą mi, jak również zapewne każdemu, kto stanie przed podobnym wyborem, podjąć właściwą decyzję co do platformy sprzętowej. Otóż sprawa jest prosta : przygotowałem prosty projekt dla środowiska Altera Quartus, który zawiera opis (dosć skomplikowany) procesora 68000. Ten konkretny projekt zajmuje ok 3x więcej zasobów niż inne tego typu procesory, również czas jego syntezy jest stosunkowo długi. Myślę więc, że nada się jako swego rodzaju "benchmark" do zmierzenia wydajności procesora.
    Prośba do każdego kto ma zainstalowanego Quartusa, aby ściągnął ten projekt, odpalił
    kompilację i zamieścił tutaj czasy poszczególnych etapów (łącznie z czasem całego procesu) w połączeniu z informacjami na temat wykorzystywanej platformy sprzętowej. Istotnymi dla mnie informacjami są : typ procesora,ilosć wątków, rdzeni, ilość oraz konfiguracja pamięci RAM oraz pamięci dyskowej.

    Z mojej strony zamieszczam następujace wyniki :

    Core2Duo E8400/3GHz (2 rdzenie, 2 wątki), 4GB RAM DDR2 800MHz DualChannel, pojedyńczy dysk SATA2
    TOTAL - 4m53s
    ANALYSYS&SYNTHESIS - 2m37s
    FITTER - 1m25s
    ASSEMBLER - 0m26s
    TIMEQUEST - 0m25s

    Core i7-950/3.60GHz,(4 rdzenie, 8 wątków) 12GB RAM DDR3 Triple Channel, 3xHDD w RAID5
    TOTAL - 4m07s
    ANALYSYS&SYNTHESIS - 2m17s
    FITTER - 1m09S
    ASSEMBPLER - 0m07s
    TIMEQUEST - 0m34s

    Core i7-2600k/3.4GHz (4 rdzenie, 8 wątków), 16GB RAM DDR2 Dual Channel, 2xHDD w RAID1
    TOTAL - 2m22s
    ANALYSYS&SYNTHESIS - 1m23s
    FITTER - 0m40s
    ASSEMBLER - 0m05s
    TIMEQUEST - 0m14s

    Jak widać, różnica pomiędzy dwurdzeniowym E8400 a czterordzeniowym/ośmiowątkowym i7-950 jest niewielka, natomiast ośmiowątkowy SandyBridge bije obu poprzedników znacząco. Tutaj szczególna prośba do posiadaczy procesorów i7-2600k z możliwością wyłączenia HyperThreadingu o sprawdzenie wyniku - czy będzie ,jak przypuszczam ,około 2x lepszy niż w przypadku włączonego HyperThreading, jak również do posiadaczy Core i5-2500k (który nie ma HyperThreadingu) o sprawdzenie wyniku czy będzie lepszy niż w przypadku i7-2600k z HT czy gorszy. Również wyniki użytkowników platform AMD są mile widziane.
  • #2 10668741
    Bruce^666
    Poziom 15  
    Witam !

    Niemogę wykonać testu niestety, ale dołożę swoje 3 grosze ;)

    Wynik testów wydaje sie oczywisty kolega chyba sie pomylił z:
    "Core i7-950/3.60GHz" nie ma takiego procka, jest ale działa na 3.06GHz (chyba że OC)
    ponadto ten procek obsługuje ramy DDR3-800/1066 a
    Core i7-2600k działa na DDR3-1066/1333

    do tego max TURBO FREQ jest dla tych procesorów odpowiednio 3.33GHz i 3.8GHZ

    Czyli szybszy procek szybszy ram i wynik też lepszy :)

    Zakładają (bo ja nie obeznany w temacie) że te toole do kompilacji nie mają wsparcia dla platform wielordzeniowych, kolega jak będzie kupował kompa niech sobie kupi zwykły dwurdzeniowiec byle turbo feq było jak największe a do tego dokupi jakieś szybkie ramy i ewentualnie sie pobawi w OC :) QUAD core ewentualnie sie opłaca dlatego ze ma dużo pamięci podręcznej i chyba teraz nie jest ona sztywno przypisywana do rdzenia tylko płynnie rozdzielana.
  • #3 10668815
    Pituś Bajtuś
    Poziom 28  
    Bruce^666 napisał:
    "Core i7-950/3.60GHz" nie ma takiego procka, jest ale działa na 3.06GHz (chyba że OC)

    Przepisałem (mam nadzieję że poprawnie) to co pokazał Windows, jutro sprawdzę za pomocą CPU-Z stan faktyczny.

    Bruce^666 napisał:
    Zakładają (bo ja nie obeznany w temacie) że te toole do kompilacji nie mają wsparcia dla platform wielordzeniowych,

    Altera to wsparcie sprzedaje za $$$, ale zysk jest niewielki (rzędu 15%).

    Bruce^666 napisał:
    kolega jak będzie kupował kompa niech sobie kupi zwykły dwurdzeniowiec byle turbo feq było jak największe a do tego dokupi jakieś szybkie ramy i ewentualnie sie pobawi w OC

    Toteż zwykły dwurdzeniowiec mam ale już ledwo dyszy. Dlatego też szukam najszybszego jednego rdzenia dowolnego procesora. Poza FPGA kompa używam też do innych celów i cofanie się wstecz nie bardzo mi się uśmiecha.
    Nie chciałbym też pchać się w i7-2600k jeśli i5-2500k będzie 2x szybszy za mniejsze pieniądze.
  • #4 10668909
    Bruce^666
    Poziom 15  
    Pituś Bajtuś napisał:

    Toteż zwykły dwurdzeniowiec mam ale już ledwo dyszy.


    Podzieli sie kolega parametrami tego potwora :) jaki procek/ile ramu jaki szybki/

    Pituś Bajtuś napisał:

    Przepisałem (mam nadzieję że poprawnie) to co pokazał Windows, jutro sprawdzę za pomocą CPU-Z stan faktyczny.

    Ja szukałem na stronie INTELA i nie znalazłem :P

    Ja to jestem ciekaw jak by sobie radziły procki ale SERVEROWE z takim zagadnieniem
  • #5 10668925
    Pituś Bajtuś
    Poziom 28  
    Bruce^666 napisał:
    Podzieli sie kolega parametrami tego potwora :) jaki procek/ile ramu jaki szybki/

    Pierwszy komputer w moim zestawieniu. Zabytek sprzed 4 lat.
  • #6 10668954
    Bruce^666
    Poziom 15  
    A dużo takie operacje ramu wchłaniają opłaca sie np. inwestować ? w 16GB ?
    Może lepiej mieć 4-8GB ale puścić je na 2GHz
  • Pomocny post
    #7 10668956
    tymon_x
    Poziom 30  
    OS: Fedora 16 (Verne), Linux 3.2.9-1.fc.x86_64
    CPU: AMD Phenom(tm) II X4 940 Processor, 3.2GHz (4 rdzenie, 800MHz)
    Memory: 8GiB (4x2GiB), 800MHz
    HDD: Seagate ST500DM002-1BD14 (6GB/s) + 1TB + 320GB

    TOTAL - 4m45s
    ANALYSYS&SYNTHESIS - 2m19s
    FITTER - 1m44S
    ASSEMBPLER - 0m04s
    TIMEQUEST - 0m38s

    Chyba czas na upgrade :D

    Bruce^666 napisał:
    A dużo takie operacje ramu wchłaniają opłaca sie np. inwestować ? w 16GB ?
    Może lepiej mieć 4-8GB ale puścić je na 2GHz

    Czasem niektóre waveformy po testach zajmują mi kilka GB...
  • #8 10669010
    Pituś Bajtuś
    Poziom 28  
    Bruce^666 napisał:
    A dużo takie operacje ramu wchłaniają opłaca sie np. inwestować ? w 16GB ?
    Może lepiej mieć 4-8GB ale puścić je na 2GHz


    Dla układów takich jak Cyclone czy też Spartan Xilinxa jest to kilkaset MB, gigabajty są wymagane przy Stratixach czy też Virtexach.
    Pojdejrzewam, że ilosć cache ma kluczowe znaczenie, jak również wydajność pamięci RAM, ale ustalić to ma ten test.
  • #9 10669218
    sulfur
    Poziom 24  
    Nie mam zwyczaju zabierania głosu w tematach, o których nie mam pojęcia, ale przy tak dużych ilościach wymaganego RAMu część danych może lądować na dysku, albo w pliku tymczasowym (programu lub systemowym), albo w swap. Użytkownicy Windowsa mogą wyłączyć plik wymiany, ale jak braknie pamięci RAM, to proces zakończy się niepowodzeniem. Tymon_x ma większe pole do popisu, bo może dodatkowo stworzyć sobie katalog z systemem plików tmpfs. Jakie możliwości konfiguracyjne ma sam Quartus ?
  • #10 10669245
    Pituś Bajtuś
    Poziom 28  
    Przy obecnych cenach dysków i RAMu stosowanie swapu mija się z celem. Chyba że na RAMdysku ;-) Pozatym spadek wydajności byłby miażdzący.
  • #11 10669259
    marekos
    Poziom 16  
    Ten test może nie być do końca pewny, bo Quartus web edition do kompilacji używa tylko jednego rdzenia. Dopiero płatna wersja Subscription Edition pozwala na określenie ile rdzeni ma używać kompilator.
  • #12 10669264
    gaskoin
    Poziom 38  
    Pituś Bajtuś napisał:

    Nie chciałbym też pchać się w i7-2600k jeśli i5-2500k będzie 2x szybszy za mniejsze pieniądze.


    i5-2500 ma trochę gorszą wydajność niż i7-2600 ale jest to tak mała różnica, że wręcz nie opłaca się kupować 2600 za te kilka stówek więcej. Lepiej je przeznaczyć na RAM albo dysk w takim przypadku.
  • #13 10669269
    Pituś Bajtuś
    Poziom 28  
    Będzie pewny, bo mi chodzi właśnie o wydajność jednordzeniową dla Quartusa Web Edition. Dlatego ten cały ambaras z poszukiwaniem najszybszego pojedynczego rdzenia.
  • #14 10669291
    sulfur
    Poziom 24  
    Nie wiem jak teraz z systemami, ale w XP swap tworzy się automatycznie i domyślnie.
    Prośba do tymon_x jeszcze. Jeśli tą kompilację czy jak to się nazywa można wykonać z poziomu konsoli, to czy mógłbyś polecenie kompilacji poprzedzić poleceniem time i wkleić wynik?
  • #15 10669305
    gaskoin
    Poziom 38  
    Na FPGA nie robi się kompilacji tylko właśnie syntezę :)
  • #16 10669313
    Pituś Bajtuś
    Poziom 28  
    Tylko że w Quartusie Synteza jest podetapem czegoś nazwanego "Compile Design". A poza Syntezą jest jeszcza Analiza i Fitowanie;-)
    Ale Panowie, testujcie!
  • #17 10669334
    sulfur
    Poziom 24  
    Przykro mi, ale w sprawach merytorycznych dotyczących FPGA/CPLD zmieniam kolor na zielony. Zabieram głos w sprawie dotyczącej wydajności.
  • #18 10669429
    tymon_x
    Poziom 30  
    sulfur napisał:
    Prośba do tymon_x jeszcze. Jeśli tą kompilację czy jak to się nazywa można wykonać z poziomu konsoli, to czy mógłbyś polecenie kompilacji poprzedzić poleceniem time i wkleić wynik?

    Komenda:
    time quartus_sh --flow compile WF68K00IP_TOP

    Wynik:
    real	4m53.236s
    user	4m52.256s
    sys	0m2.522s


    EDIT.
    295.71user 2.55system 4:57.21elapsed 100%CPU (0text+0data 288672max)k 0inputs+80640outputs (0major+464290minor)pagefaults 0swaps
  • #19 10669480
    sulfur
    Poziom 24  
    Widzę, że masz domyślnie format portable. Chodziło mi bardziej o
    time -f "%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps"
  • #20 10686717
    Dexter77
    Poziom 28  
    No to może żeby wykorzystać więcej rdzeni zainstalować sobie maszynę wirtualną. W niej uruchomić nastepną instancje Quartusa. Nie pomoże to w przyspieszeniu syntezy pojedyńczego projektu ale pozwoli na wybranie lepszego rezultatu. Oczywiście bardziej przydatne przy syntezach trwających po kilka godzin.
  • #21 11254820
    LightOfWinter
    Poziom 38  
    A ja mam inną propozycję.
    Sądzę że warto zainwestować w dysk SSD (warto pamiętać żeby wspierał polecenie TRIM) Na niektórych płytach da się takie dyski połaczyć w RAID (trzeba się upewnić że TRIM będzie działało z RAID-em).

    Dysk twardy to najwolniejszy element komputera. Więc jego wymina powinna przynieść znaczącą poprawę wydajności.

    Można tez spróbować obniżyć mnożnik procesora a podnieść częstotliwość magistrali. Kiedyś dawało to dobre efekty. Wyraźny wzrost mocy obliczeniowej.
  • Pomocny post
    #22 11255546
    alagner
    Poziom 26  
    Nie wiem czy to nadal akutalne, ale trafiłem na ten topic właśnie i moje wyniki:

    Analysis & synthesis 0:2:31
    Fitter 0:1:19
    Assembler 0:0:03
    TimeQuest Timing 0:0:35

    Phenom X6 1055T, 6GB RAM

    Odn. dysku SSD - ciekaw jestem jakie znaczenie ma tutaj dysk i czas dostępu, może się ktoś wypowie?
  • #23 11256322
    Pituś Bajtuś
    Poziom 28  
    Aktualne cały czas ;-)
    Przedstawiłeś ciekawe wyniki - miło wiedzieć, że Phenom dorównuje i7-2600k w tym zastosowaniu.
    Co do SSD, to najlepiej by było jakby ktoś z SSD przedstawił wyniki - inaczej znowy będzie wróżenie z fusów i gdybanie.
  • #24 11269592
    Dave_PL
    Poziom 14  
    Ja jestem ciekaw jak wypada porównanie: i5-2500k, i7-2600k, i5-3570k, i5-3770k.
  • #25 11276910
    kriss68
    Poziom 20  
    Tak dla śmiechu wyniku mojego "super" komputera:

    OS: Win 7 64bit
    Quartus: 12.0 Sp1 32bit
    Procesor: Athlon 64 X2 5000+ (2,6GHz, 2 rdzenie, 2 wątki)
    RAM: DDR2 4x1GB (400MHz, CS 5)
    Dysk: 2x SATA2, nie połączone w RAID

    Total: 9:54
    A&S: 3:22
    Fitter: 5:49
    Assembler: 0:05
    Time Quest: 0:38

    Co ciekawe tylko u mnie A&S trwało krócej niż Fitting :D
  • #27 11361373
    dimek6
    Poziom 13  
    Jeżeli chodzi o ISE, jest podobno dużo wolniejsze od Altery, sam pracowałem na ISE 13.2 i powiem tak jeżeli chodzi o prosty projekt uC AVR aby tylko mrugał diodą to dla spartana 3E XC3S500E na moim sprzęcie:

    Core 2 Duo T6400 2x2Ghz
    4GB DDR3

    Miałem czasy około 10:32

    Jeżeli projekt dla którego wyniki testów wrzucacie jest bardzo złożony pewnie w porównaniu do mojego mógłbym spokojnie zdążyć ugotować ziemniaki:)
REKLAMA