Wiele rdzeni - co dalej z nimi robić?
11 marca 2008 20:44 Łukasz Bigo
AMD: wiele rdzeni, każdy inny
Chuck Moore z AMD uważa, że CPU w komputerach powinny upodobnić się do układów montowanych w telefonach komórkowych (patrz: "Procesory w komórkach - arcydzieła współczesnej elektroniki"). To znaczy, że w skład procesora powinna wchodzić duża liczba specjalizowanych rdzeni: jeden do obsługi grafiki 2D, inny może zajmujący się kryptografią (wraz z generatorem liczb przypadkowych), kolejny do "ogólnych" obliczeń stałoprzecinkowych, następny do generowania dźwięku itp.
Każdy rdzeń miałby własny interfejs programowania (API). Brzmi to może skomplikowanie, ale - jak mówi Moore - technika sprawdziła się w w przypadku DirectX, który potrafi obsłużyć wiele akceleratorów 3D "sam z siebie", bez zmuszania programisty do uczenia się różnic między Nvidią i ATI.
IBM: wiele identycznych rdzeni ogólnego zastosowania + wiele identycznych rdzeni specjalizowanych
Z przedstawicielem AMD zgadzał się inżynier z firmy Renesas. Natomiast IBM uznał, że najlepsza droga to ta, którą korporacja zaprezentowała w Cellu. Czyli: połączenie rdzeni ogólnego zastosowania z jednostkami specjalizowanymi, ale tego samego rodzaju (w Cellu są to jednostki wektorowe).
Tilera: tylko identyczne rdzenie ogólnego zastosowania!
Zupełnie inne zdanie miał założyciel i prezes Tilery, Anant Awarwal, Jego zdaniem rdzenie powinny być homogeniczne, tj. takie same. Z taką właśnie sytuacją mamy do czynienia obecnie w wypadku CPU kompatybilnych ze zbiorem instrukcji x86/x86-64.
Awarwal wysunął jeszcze jedną ciekawą hipotezę. Twierdzi on, że do 2017 roku układy zintegrowane (embedded) będą miały nawet 4096 rdzeni, CPU serwerowe - 512 rdzeni, a procesory do komputerów klasy desktop - 128 rdzeni.
Fascynująca lektura: "CPU designers debate multi-core future" (w języku angielskim)
Więcej o procesorach wielordzeniowych oraz benchmarki najnowszych układów Intela (Core 2 Duo/Quad) i AMD (Phenom) znajdziesz w PC Worldze 04/2008. Dowiesz się też, dlaczego Intel jest szybszy, ale wybór AMD może okazać się lepszy.
- Gf
- 2008-03-11 22:14:26
Do dziś procesory wektorowe nie zostały wyparte przez klastry, ani wieloprocesorowe maszyny. Tak jest w superkomputerach od lat. Po prostu nie ma idealnego rozwiązania i chyba nie będzie. Ale ja juz dawno mówiłem i powtarzam. Nie będzie juz komputerów żadnych! które by miały jeden rdzeń. wymusi to inny sposób pisania systemów operacyjnych i programów. I to zajmie długo. max 10 lat.
- Corey
- 2008-03-11 22:33:04
Jakkolwiek się będą rozwijać procesory, to chyba na chwilę obecną ważniejsza jest globalna zmiana stylu programowania tak, aby równolegle wykorzystywać wszystkie rdzenie. Bo co z tego, że w procu mam 2,4,8 czy więcej rdzeni, skoro programów użytkowych potrafiących to wykorzystać jest wciąż tak mało? (nie wspominając już o systemach operacyjnych)
- atomic
- 2008-03-11 23:00:28
Wedlug mnie rdzenia powinny byc podzielone ze wzgledu na potokowosc. nie zdziwil bym sie, jak by sie okazalo ze w niedalekiej przyszlosci poszczegolne rdzenie procesora byly taktowane roznymi czestotliwosciami. Koniec koncow word nie wymaga takich mocy obliczeniowych. On swobodnie dziala przy 600 MHz, no chyba ze beda go upiekszac jak viste.
- mdb
- 2008-03-11 23:12:48
@atomic - Czyżbyś nie widział najnowszego worda? W systemach jest coraz więcej rdzenia, a opanowanie kodu programów z kilkoma wątkami staje sie koszmarem. Dlatego czekam ich specjalizacje.
- sir radoslaw
- 2008-03-11 23:28:41
Z tego co widze to procesory idą w ciekawym kierunku, w każdym razie innym niż na samym początku aż do końca jednrdzeniwoych gdzie taktowanie było najwazniejsze. Teraz otrzymujemy ogromną moc obliczeniową, taktowanie nie będzie już tak istotne tylko rozkład sił. Skoro zwykłe komputery mają mieć ponad 100 rdzeni to głównym problemem nie jest ich struktura, tylko oprogramowanie, które pokieruje systemem tak by po prostu nie zacinał się :). Nie chodzi tu o aplikacje itd. to system operacyjny powinien w pełni zarzadzać rdzeniami, a porgramiści nie powini wymagać tylko więcej i więcej zasobów a mniej i mniej od siebie. Jak dla mnie gdyby istniał taki system operacyjny to domowym kompputerem idealanym byłby: 16GB RAM(tutaj też bym zrzucił na system operacyjny odpowiednie zarządzanie, no i też powinny być "pogrupowne") i 12 rdzeni (odpowiednio "zgrupowanych").Jak dla mnie więcej mocy obliczeniowj nikomu nie trzeba i nie będzie trzeba (chyba że będzie używał windowsa)przez następne 10 lat, a z 10 lat powinny już być komputery mechaniczne (mam nadzieje że niktórzy wiedzą o czym pisze)
- P.O.
- 2008-03-12 00:14:45
@sir radoslaw, może mnie oświecisz co to jest komputer mechaniczny? Czyżbyśmy się mieli cofać do ery mechanicznych maszyn liczących?
- Pablo Escobar
- 2008-03-12 00:17:11
@sir radoslaw Komputery kwantowe? Q-bity? Równoległe przetwarzanie? Nie mogę się już doczekać :D
- Luu
- 2008-03-12 08:02:38
// # sir radoslaw Jak dla mnie więcej mocy obliczeniowj nikomu nie trzeba i nie będzie trzeba // Nie wszyscy tak jak ty uzywają tylko GG i firefoksa. Odpal jakiś rendering 3d to zobaczysz, żete 12 rdzenie to o wiele za mało
- maniak
- 2008-03-12 08:48:15
@radosław "Jak dla mnie więcej mocy obliczeniowj nikomu nie trzeba i nie będzie trzeba (chyba że będzie używał windowsa)" Już ktoś kiedyś twierdził że 640KB pamięci wystarczy w zupełności... P.S. (do poważniejszych zadań nie używam Windowsa...)
- wichura1
- 2008-03-12 09:04:56
Na początku prawdopodobnie wprowadzą komputery optyczne. Co do wymagań, dopóki nie wyzwoli się PC-tów z klątwy X86, będą mulić. Można też tworzyć systemy operacyjne bez wodotrysków. Projekt PowerXP (odchudzony Windows XP niestety nielegalny) Śmiga bez problemów na PIII 500 256MB pamięci widziałem to na własne oczy. Działa szybciej niż mój staruszek laptop P4M 1,7 512MB pamięci. Używanie komputerów PC do grafiki i gier to też nieporozumienie, do grafiki nieruchomej są MAC, ruchomej komputery SGI (Silicon Graphics), a do gier konsole. Muzealna już prawie PS2 ma procesor 128 bitowy.
- xxx
- 2008-03-12 09:07:20
$ rdzenie są dobre, bo świetnie na nich jajecznicę da się usmażyć !
- pijaczek
- 2008-03-12 10:29:46
@sir radoslaw: najważniejsze jest dalej taktowanie bo podnosząc taktowanie rdzeni zwiększasz moc obliczeniową o wzrost częstotliwości * ilość rdzeni. Dodatkowo co z tego, że masz 1k rdzeni jak wiele algorytmów nie da się przerobić na wielowątkowe i mimo tylu rdzeni program będzie się liczył 100lat bo jest niska częstotliwość - jasne, że ilość rdzeni jest ważna przy wirtualizacji i np. każdą aplikację odpalisz na osobnym rdzeniu jednak gdy ważna jest szybkość jednej aplikacji to nie ważne czy to jest 2 czy 100 rdzeni bo i tak działać pewnie będzie tak samo. Systemy operacyjne od dawna dobrze zarządzają rdzeniami, a programy jeśli się da są robione wielowątkowo (ja korzystam z openml ;p) - nie wszystko jednak jest możliwe rozłożyć na 2 wątki, a te które się da na 2 niekoniecznie da się rozłożyć na więcej ;p @Pablo Escobar: Procesorami kwantowymi i rozmowami z ibm, intel i innymi zajmuje się mój wykładowca (twierdzi on, że dzisiejsze procesory tkwią w erze maszyny parowej ;p) - minus tych procesorów jest to, że nie są one przewidywalne (tak zwany chaos deterministyczny) czyli wynik ich działania mimo ze błyskawiczny to nie do końca przewidywalny i nie nadają się do większości zastosowań ;p
- Specu
- 2008-03-12 10:49:23
@pijaczek prawo moore''a już dawno sie zdezaktualizowało... teraz nie jest najważniejsze taktowanie, ale optymalizacja pracy rejestrów i technologia wykonania. ale fakt faktem... era krzemu zakonczyła sie na p4 prescott/barton, każda nowsza wersja to nic rewelacyjnego względem poprzednika. potrzebna jest nowa technologia wykonania - inzynierowie z MIT pracują nad procesorem mechanicznym, który po wyłączeniu pamięta wykonane ostatnio operacje. i tu jes odpowiedz, dlaczego producenci nie przekraczają taktowania 3,6GHz - narasta błąd liczenia. procesor zaczyna gubić cykle zegarowe aby nadrobić strate wynikającą z błędów liczenia. podnoszenie zegara nie przynosi efektu wzrostu wydajności - w pojedynczej precyji jeszcze ujdzie, ale w wielokrotnościach - porażka. tylko wprowadzenie nowej technologii wykonania może w znaczący sposób podnieść wydajość. era krzemu staje sie historią
- pijaczek
- 2008-03-12 11:09:20
@Specu: No tak - chodziło mi raczej o wydajność rdzenia niż o samą częstotliwość - ponad 3.6 da się przekroczyć bez błędów liczenia, ale musi być dobre chłodzenie ;p (przy ciekłym azocie można mieć liczenie bez błędów na 5gHz chodź to co najmniej niewygodne ;p) Podnoszenie zegara przynosi wzrost wydajności jednak nie, nie można jej podnosić w nieskończoność i trzeba szukać innych dróg ;p Era krzemu na dobrą sprawę się dawno zakończyła i jeden rdzeń już nie będzie dużo szybciej działać szybciej (doszliśmy do takiego momentu, że c2d za niecałe 300zł podkręcony troszkę przegania w testach wydajności xeony - sztucznie utrzymywana cena, bo już więcej nie da się wycisnąć z szybkości rdzenia) - dlatego teraz drogi są dwie. 1. więcej rdzeni co nie rozwiązuje problemu, a jedynie go przesuwa w czasie. 2. Opracowanie procesora w innej architekturze.
- RA
- 2008-03-12 11:48:07
@pijaczek i @Specu na konferencji specjalistów z IBM poruszany był problem taktowania i błędów liczenia. Architektura PPC 6 jest taka, że w przeciwieństwie do x86 minimalizuje wpływ powstawania błędów, a dodatkowo bardziej złożony proces produkcyjne eliminuje takie błędy niemal do zera przy zegarze 5GHz. Podobno następna generacja ma pozwalać na więcej, ale widząc małą popularność tej drogiej architektury zastanawiam się czy będą dalej w to inwestować. Sam bym kupił komputer z PPC6, ale ceny są zaporowe.
- pijaczek
- 2008-03-12 11:50:15
@RA: Do mnie właśnie idzie do testów ps3 ;p - zobaczymy ile ten cell jest wart ;p
- pijaczek
- 2008-03-12 11:51:43
@RA: Do mnie właśnie idzie do testów ps3 ;p - zobaczymy ile ten cell jest wart ;p 1.5k to nie jest cena zaporowa za komputer i konsole z procesorem cell razem ;p
- Luke
- 2008-03-12 12:09:31
ja jestem przekonany, że ilość 128 rdzeni dla zwykłego uzytkownika i dla programistów będzie horrorem. Chyba że jednak rdzenie będą się specjalizować. Dla jest to najlepsza sciezka rozwoju. I w tym widzę przyszłość i... zamieszanie ;) Wyobrazcie sobie że macie 128 rdzeni do wykorzystania - jak je podzielicie? 32 ogolnego zastosowania, 3 do 2D 3 do czegoś jeszcze, 32 zmiennoprzecinkowe obliczenia, 1 wyspecjalizowany pod rara, jeden pod strumien HDTV itp ;)) Może będzie mozliwość zamówienia procesora dokładnie pod moje zachcianki ;)))))))) Każdy z nas ma inne wymagania, ja już nie muszę silić się na wyciśnięcie oststnich potów z kompa bo juz skomplikowanych obliczeń nie robię. Za to z chęcią bym posadził równolegle wingrodze i linucha z niezauważalnym spadkiem wydajności.
- pijaczek
- 2008-03-12 13:25:11
@Luke: Xen na 2ch rdzeniach i już możesz tak zrobić :) - masz 2 systemy na raz każdy na osobnym ;p (na 4rdzeniowym każdy będzie miał po 2 rdzenie)
- Luke
- 2008-03-12 21:12:15
@pijaczek, masz racje.. ale za jaką cenę ;)
- Specu
- 2008-03-12 21:43:43
@pijaczek w niektórych specyficznych warunkach krzem staje sie nadprzewodnikiem. zastosowanie ciekłego azotu powoduje zaistnienie takiej szczególnej sytuacji więc chłodzenie takie jest niemożliwe do wykonania na dłuższą metę. przy podkręcaniu procesora o 30% i więcej występuje problem ''cache hit, cache miss'', więc jest to bardzo nieskuteczne zwiększenie wydajności procesora.
- pijaczek
- 2008-03-13 03:10:08
@Specu: z ciekłym azotem to jak powiedziałem "niewygodnie" i nie nadaje się na dłużej niż do zrobienia rekordu ;p Z tym 30% to się nie zgodzę bo to zależy od modelu i konkretnego egzemplarza, chłodzenia itd., np. c2d e4300 1.8gHz podkręciłem na 3.5gHz (z Scythe NINJA PLUS) i po 2ch godzinach obciążenia 100% nie zrobił żadnego błędu - chodź widziałem takie p4 i athlony64 x2 które robiły błędy przy standardowych częstotliwościach i trzeba było zmniejszać prędkość poniżej ustalonej przez producenta ;p - tolerancja procentowa na podkręcanie jest zależne od wielu czynników i waha się od minus kilka % do ponad 100% @Luke: przy 4rech rdzeniach nie jest zauważalny jakiś duży spadek wydajności
- Cloclo80
- 2008-03-13 12:58:04
Przy rosnącej ilości rdzeni problemem staje się zapewnienie odpowiedniego dostępu rdzeni do pamięci. To nie jest problem uruchomić liczenie np. 4096 próbek SETI@Home na raz (każdy rdzeń liczy jedną próbkę), ale jeśli taki proc ma współpracować z tylko jednym układem RAM to marnie widzę problem zapewnienia dostępu do danych. Oczywiście każdy rdzeń może mieć pamięć podręczną , ale jest oczywiste, ze w przypadku pracy z programami operującymi znacznymi masywami danych każdy rozmiar takiej pamięci będzie za mały.
- ?!
- 2012-05-10 12:26:14
Zastanawiam się, co artykuł sprzed 4 lat robi w RSSach.
Pobierz bezpłatnego e-booka 


