Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wybór platformy PC do syntezy FPGA

Pituś Bajtuś 12 Mar 2012 19:06 3818 26
  • #1 12 Mar 2012 19:06
    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 12 Mar 2012 19:50
    Bruce^666
    Poziom 14  

    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 12 Mar 2012 20:00
    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 12 Mar 2012 20:15
    Bruce^666
    Poziom 14  

    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 12 Mar 2012 20:17
    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 12 Mar 2012 20:22
    Bruce^666
    Poziom 14  

    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 12 Mar 2012 20:22
    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 12 Mar 2012 20:29
    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 12 Mar 2012 20:53
    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 12 Mar 2012 20:56
    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 12 Mar 2012 20:58
    marekos
    Poziom 15  

    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 12 Mar 2012 20:59
    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 12 Mar 2012 21:00
    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 12 Mar 2012 21:03
    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 12 Mar 2012 21:05
    gaskoin
    Poziom 38  

    Na FPGA nie robi się kompilacji tylko właśnie syntezę :)

  • #16 12 Mar 2012 21:06
    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 12 Mar 2012 21:10
    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 12 Mar 2012 21:26
    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:
    Code:
    time quartus_sh --flow compile WF68K00IP_TOP

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


    EDIT.
    Code:
    295.71user 2.55system 4:57.21elapsed 100%CPU (0text+0data 288672max)k 0inputs+80640outputs (0major+464290minor)pagefaults 0swaps

  • #19 12 Mar 2012 21:33
    sulfur
    Poziom 24  

    Widzę, że masz domyślnie format portable. Chodziło mi bardziej o

    Code:
    time -f "%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps"

  • #20 16 Mar 2012 23:16
    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 28 Sie 2012 14:24
    LightOfWinter
    Poziom 29  

    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 28 Sie 2012 18:31
    alagner
    Poziom 25  

    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 28 Sie 2012 21:39
    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 01 Wrz 2012 22:10
    Dave_PL
    Poziom 14  

    Ja jestem ciekaw jak wypada porównanie: i5-2500k, i7-2600k, i5-3570k, i5-3770k.

  • #25 04 Wrz 2012 09:23
    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 29 Wrz 2012 21:48
    dimek6
    Poziom 12  

    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:)

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME