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.
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.
