eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProcesory wielordzeniowe
Ilość wypowiedzi w tym wątku: 47

  • 21. Data: 2014-10-05 16:45:52
    Temat: Re: Procesory wielordzeniowe
    Od: A.L. <a...@a...com>

    On Sun, 5 Oct 2014 01:47:21 -0700 (PDT), s...@g...com wrote:

    >W dniu niedziela, 5 października 2014 00:41:48 UTC+2 użytkownik A. L. napisał:
    >> On Sat, 4 Oct 2014 15:25:04 -0700 (PDT), s...@g...com wrote:
    >>
    >
    >>
    >> A o czyms takim jak "cache memory" slyszales? Poczytaj sobie cos o
    >>
    >> architekturze procesora wielordzeniowego
    >>
    >
    >Pamięć cache to też taka "kostka" tyle że zaszyta w kostce procka. No i co w
    sytuacji, gdy 2 procesory odwołują się jednocześnie do dwóch różnych adresów w
    obrębie tej pamięci?

    L1 cache (a w niektorych procesorach i L2 cache) sa wlasnoscia "core"
    czyli rdzenia. Tylko jeden moze odwolac sie do tej pamieci

    A.L.


  • 22. Data: 2014-10-05 17:12:07
    Temat: Re: Procesory wielordzeniowe
    Od: s...@g...com

    W dniu niedziela, 5 października 2014 16:30:21 UTC+2 użytkownik A. L. napisał:

    >
    >
    >
    > Z che3cia bym wzial udzial w dyskusji, ale wezme dopiero wtedy gdy
    >
    > nauczysz sie wtsylac posty tak aby nie byly one jedna linia dluga na
    >
    > kilometr.
    >
    >

    No nieee... Byle burok "skapnąłby się", że korzystam z google.groups .
    Na wygląd postów w Twojej odczytywarce nie mam żadnego wpływu. Może mi powiesz żem
    Burok bo z GG korzystam? G Ci do tego, nie chcesz to się nie odzywaj. A tak w
    temacie.. Masz coś do powiedzenia w temacie, czy ino czekasz na krótką linijkę do
    krótkiej linijki, w której po krótce opiszę to co jest zawarte w głównym wątku.
    >
    > Ciezko widze programowanie wieloprocesorow jak ktos nie umie wyslac
    >
    > posat na usenet
    >

    Miszczu!! Dzięki za wsparcie. Nie umiałem wysłać, a jednak poszło. W końcu
    odczytałeś geniuszu.

    Doradź mi miszczu jeszcze coś. Pytać się o coś na grupach dyskusyjnych, czy raczej
    nie? Będą tu jakieś porady, czy ino zjeby?

    =============

    Dobrze dyskutuje się z Bartkiem, można mieć inne zdanie na "coś tam", wymiana
    poglądów/argumenty, miło się gada.

    ================

    Z Tobą A.L. się nie da. Wyżej ..asz niż ...e masz.


  • 23. Data: 2014-10-05 18:19:18
    Temat: Re: Procesory wielordzeniowe
    Od: A.L. <a...@a...com>

    On Sun, 5 Oct 2014 08:12:07 -0700 (PDT), s...@g...com wrote:

    >W dniu niedziela, 5 października 2014 16:30:21 UTC+2 użytkownik A. L. napisał:
    >
    >>
    >>
    >>
    >> Z che3cia bym wzial udzial w dyskusji, ale wezme dopiero wtedy gdy
    >>
    >> nauczysz sie wtsylac posty tak aby nie byly one jedna linia dluga na
    >>
    >> kilometr.
    >>
    >>
    >
    >No nieee... Byle burok "skapnąłby się", że korzystam z google.groups .
    >Na wygląd postów w Twojej odczytywarce nie mam żadnego wpływu. Może mi powiesz żem
    Burok bo z GG korzystam?

    Tak

    >G Ci do tego, nie chcesz to się nie odzywaj. A tak w temacie.. Masz coś do
    powiedzenia w temacie, czy ino czekasz na krótką linijkę do krótkiej linijki, w
    której po krótce opiszę to co jest zawarte w głównym wątku.
    >>
    >> Ciezko widze programowanie wieloprocesorow jak ktos nie umie wyslac
    >>
    >> posat na usenet
    >>
    >
    >Miszczu!! Dzięki za wsparcie. Nie umiałem wysłać, a jednak poszło. W końcu
    odczytałeś geniuszu.
    >
    >Doradź mi miszczu jeszcze coś. Pytać się o coś na grupach dyskusyjnych, czy raczej
    nie? Będą tu jakieś porady, czy ino zjeby?
    >
    >=============
    >
    >Dobrze dyskutuje się z Bartkiem, można mieć inne zdanie na "coś tam", wymiana
    poglądów/argumenty, miło się gada.
    >
    >================
    >
    >Z Tobą A.L. się nie da. Wyżej ..asz niż ...e masz.

    Idziesz do KF. Permanantnie. Z burakami nie rozmawiam.

    A.L.


  • 24. Data: 2014-10-05 18:57:53
    Temat: Re: Procesory wielordzeniowe
    Od: s...@g...com

    W dniu niedziela, 5 października 2014 18:19:18 UTC+2 użytkownik A. L. napisał:

    >
    >
    > Idziesz do KF. Permanantnie. Z burakami nie rozmawiam.
    >

    Ależ proszę bardzo, jak Guru z erystyką nie daje sobie rady, to najprościej nie
    słuchać adwersarza.

    A odnośnie epitetów, to radzę trochę przystopować. W najlepszym przypadku możesz być
    Pan postrzegany na grupie w/g użytego przez Pana określenia.

    Tymczasem do zobaczenia w KF.


  • 25. Data: 2014-10-05 19:50:19
    Temat: Re: Procesory wielordzeniowe
    Od: Jacek Radzikowski <j...@s...die>

    s...@g...com wrote:

    > W dniu niedziela, 5 października 2014 12:01:53 UTC+2 użytkownik Jacek
    > Radzikowski napisał:
    >> Zarządzanie zawartością pamięci cache to bardzo skomplikowany temat, na
    >>
    >> którym zrobiono wiele doktoratów i sporo zostanie zrobionych w
    >> przyszłości.
    >>
    >> W skrócie wygląda to tak, że zawartość cache nie odwzorowuje liniowo
    >> jednego
    >>
    >> wielkiego obszaru pamięci, a wiele stosunkowo niedużych stron. Strony
    >>
    >> sąsiadujące ze sobą w cache mogą w pamięci głównej być położone daleko od
    >>
    >> siebie.
    >
    > Fakt, że nie jest to odwzorowanie "wielkiego" obszaru pamiąci jest
    > oczywisty. Natomiast mechanizm kojarzenia stron jest dla mnie
    > niezrozumiały. Od strony HW, mamy jakiś tam adres zapisany na n-bitach.
    > Jasne, że możemy ten adres w przypadku "dużych" pamięci podzielić na
    > strony, bądź innymi słowy na kostki pamięci. OK, no ale wtedy cykl dostępu
    > do pamięci to 2 kliknięcia zegarka na licznik adresowy, bądź 2 rozkazy
    > zapisu od strony procka do jakiegoś tam rejestru adresowego. O co mi
    > chodzi? Nosz kurdelebelans, nie da się z jednej kostki odczytać w tym
    > samym czasie danych z 2-ch różnych adresów!! No bo niby jak ? Zakładam że
    > kostka ma liniową przestrzeń adresową A(N downto 0). Szerokość słowa
    > danych nie ma znaczenia.

    Dzięki temu że pamięć cache jest szybka i lokalna dla rdzenia, nie zajmuje
    ani trochę czasu.
    Mechanizm "klasyczny" jest dość prosty. Procesor chcąc odczytać komórkę
    pamięci wystawia adres na szynę adresową. Ta nie jest podpięta bezpośrednio
    do pamięci RAM, a do układu zarządzającego cache. Adres jest dzielony na
    logiczne kawałki: w dużym uproszczeniu wygląda to tak, że najmłodsze bity
    określają przesunięcie na stronie, a starsze numer strony. Trochę jak
    intelowe offset i segment, ale sensowniej zrobione.
    Numer strony jest porównywany z numerami stron ściągniętymi do cache, i
    jeśli strona jest załadowana, odpowiednia wartość jest zwracana do
    procesora, a jeśli nie - układ (podkreślam że to jest układ, program nic o
    tym nie wie) zarządzania cache ściąga stronę z pamięci wyższego poziomu
    (czyli kolejny poziom cache, albo pamięć RAM.)

    Jeśli strona siedzi w cache to cała procedura nie zajmuje nawet jednego
    cyklu zegara. Dzieje się tak dlatego, że tablica translacji jest
    zaimplementowana jako pamięć asocjacyjna - taka sprzętowa baza danych
    adresowana zawartością. Na wejście podajesz numer strony do której się
    odwołujesz, na wyjściu otrzymujesz albo informację gdzie ta strona jest w
    cache, albo że jej nie ma. To w którym wierszu tabeli ta informacja jest
    zapisana nie ma najmniejszego znaczenia.


    >> Tym żeby wiedzieć jaki adres w cache odpowiada adresowi w pamięci
    >>
    >> zajmuje się tablica translacji.
    >
    > A skąd owa tablica ma wiedzieć o wynikach działania programu/obliczeń i
    > jak przypisać skoki tam gdie trzeba? Czyżby kompilator najpierw wykonywał
    > wszelakia możliwe obliczenia, a następnie odpowiednio to kompilował? David
    > Copperfield?

    W nowych procesorach może to wyglądać na sztuczki magiczne, ale magii tam
    nie ma. Tablica translacji jest uaktualniana przez układ zarządzania cache
    który wie dokładnie które strony są załadowane do cache i pod jakimi
    adresami. Ani kompilator ani procesor nie muszą o tym wiedzieć.


    >> Jeśli strona do której procesor chce się odwołać nie znajduje się w cache
    >> -
    >>
    >> wykonanie programu jest wstrzymywane i strona jest ładowana. To, którą
    >>
    >> stronę w cache zastąpić nową zawartością - to jeden z tematów na
    >> doktorat.
    >
    > Bez jaj. Tego się nie da zrobić w sposób predykcyjny z poziomu
    > kompilatora. Jeżeli ktoś podejmie się takiego doktoratu, to równie dobrze
    > może się chwycić za doktorat z wróżenia z fusów.

    To nie kompilator. Ten mechanizm jest wbudowany w krzem.
    Najprostszy manager cache reaguje na to co procesor chce odczytać i ściąga w
    razie potrzeby. Doktoraty są robione na "wróżeniu z fusów" które pomoże
    ściągnąć stronę do cache zanim faktycznie będzie potrzebna.


    [...]

    >> Że to wszystko wymaga czasu - no cóż, "taką mamy pamięć". Dlatego szybkie
    >>
    >> procesory mają po kilka poziomów pamięci cache o różnych szybkościach,
    >>
    >> dlatego rozdziela się cache programu i danych. Temu też służą algorytmy
    >>
    >> przewidywania skoków i cała masa innej magii zaimplementowanej w
    >> nowoczesnym
    >>
    >> procesorze.
    > Ano właśnie ta magia.. Na czym owa predykcja polega? Może się mylę, ale
    > coś mi tu pachnie marketingowym bełkotem.

    To nie jest bełkot marketingowy, a jeden (kilka?) z doktoratów. Nie wiem jak
    to działa w szczegółach, ale polega mniej-więcej na tym że jak układ
    sterujący wykonaniem rozkazów widzi w kolejce instrukcję skoku to będzie się
    starał przewidzieć która strona pamięci będzie potrzebna i zleca układowi
    cache żeby ją ściągnął. W ostateczności może zawsze upewniać się że dostępny
    jest kod dla obydwu wariantów, ale to jest bardzo naiwne i nie-ekonomiczne
    podejście.


    >> Na szybkość działania programu bardzo duży wpływ ma też to jak
    >> zaplanujesz
    >>
    >> dostępy do pamięci. Numerycy bardzo nie lubią operować na tablicach
    >>
    >> wielowymiarowych, bo to potrafi dodać sporo niepotrzebnych przeładowań
    >>
    >> stron.
    >
    > Hah!! Właśnie ja tak robię. Dzięki paru GB pamięci, DSP mogę robić na
    > najpodlejszym laptopie w czasie rzeczywistym.

    Gratuluję odkrycia jednej z najprostszych optymalizacji możliwych do
    zaimplementowania na etapie projektowania struktur danych :)


    >> Zamiast tego indeksy są mapowane do liniowego obszaru pamięci i jak
    >>
    >> trzeba obliczyć stan w następnym kroku symulacji - solwer jedzie po
    >>
    >> kolejnych komórkach nie troszcząc się o indeksy (oczywiście wszystkie
    >> dane
    >>
    >> wejściowe są odpowiednio przygotowane).
    >
    > Upsss.. Nie za bardzo kojarzę.

    Tablica ma rozmiar A x B. Odwołujemy się do elementu (i, j). Adres elementu
    w przestrzeni liniowej przy zapisywaniu danych wierszami to k = (j * A) + i


    >> Zrób kiedyś eksperyment: zaalokuj wielką tablicę dwu-wymiarową i
    >> przeskanuj
    >>
    >> ją iterując najpierw po wierszach później po kolumnach, a później odwróć
    >>
    >> kolejność iteracji: najpierw po kolumnach później po wierszach.
    >> Przekonasz
    >>
    >> się o ile szybciej program będzie działać kiedy będziesz odwoływać się do
    >>
    >> pamięci bez skakania po stronach.
    > Bez jaj !! Poważnie? Kurde, zrobię taki eksperyment, ale aż wierzyć mi się
    > nie chce. Załóżmy że masz rację. No ale wróćmy do realu. Załóżmy że
    > potrzebuję w koło macieju w jakiejś tam pętli odczytywać dane pomiarowe, z
    > tych danych jest tworzona macierz (NxN), robimy z niej macierz odwrotną,
    > następnie wykonujemy jakieś tam czary mary na elementach a(i,j), potem
    > liczymy z tego wyznacznik i cholera wie co jeszcze. No i jak w takim
    > burdelu mam zapanować nad stronicowaniem? Kompilator to zrobi za mnie? Nie
    > wierzę !!

    Kompilator może tak ułożyć kod żeby podprogram wykonywany przez dłuższy czas
    w całości zmieścił się w cache. O tym żeby dane były tak ułożone musisz sam
    zadbać. Poczytaj sobie o cache locality (możesz zacząć tutaj:
    http://stackoverflow.com/questions/12065774/why-does
    -cache-locality-matter-for-array-performance)
    Ani kompilator ani Ty nie musicie się przejmować panowaniem nad
    stronicowaniem. To jest robota układu zarządzania cache zaszytego w krzemie
    tuż obok rdzenia procesora.


    > Cholera, na grupie elektronicznej w zasadzie zjechaliśmy na matematykę.
    > Ale cóż, nowoczesna elektronika bez matematyki/algorytmiki nie może
    > funkcjonować.

    Jak czytam wywody niektórych elektroników to chętnie bym wysłał ich na kurs
    podstaw inżynierii programowania. Lekkie poszerzenie horyzontów na pewno nie
    zaszkodzi :)

    pzdr.
    j.





  • 26. Data: 2014-10-05 20:29:20
    Temat: Re: Procesory wielordzeniowe
    Od: A.L. <a...@a...com>

    On Sun, 5 Oct 2014 09:57:53 -0700 (PDT), s...@g...com wrote:

    >W dniu niedziela, 5 października 2014 18:19:18 UTC+2 użytkownik A. L. napisał:
    >
    >>
    >>
    >> Idziesz do KF. Permanantnie. Z burakami nie rozmawiam.
    >>
    >
    >Ależ proszę bardzo, jak Guru z erystyką nie daje sobie rady, to najprościej nie
    słuchać adwersarza.
    >
    >A odnośnie epitetów, to radzę trochę przystopować. W najlepszym przypadku możesz być
    Pan postrzegany na grupie w/g użytego przez Pana określenia.
    >
    >Tymczasem do zobaczenia w KF.

    Cytuje: "Wyżej ..asz niż ...e masz." Ja tez radze przystopowac.

    Do zobaczenai

    A.L.


  • 27. Data: 2014-10-05 21:14:34
    Temat: Re: Procesory wielordzeniowe
    Od: s...@g...com

    W dniu niedziela, 5 października 2014 19:50:19 UTC+2 użytkownik Jacek Radzikowski
    napisał:

    >
    >
    >
    > Jak czytam wywody niektórych elektroników to chętnie bym wysłał ich na kurs
    >
    > podstaw inżynierii programowania. Lekkie poszerzenie horyzontów na pewno nie
    >
    > zaszkodzi :)
    >

    Po pierwsze to wielki sorry za wycięcie kupy dyskusji w której brałeś udział. Jak kto
    chce, niech sobie te wpisy poczyta. W pewnej części zgadzam się z Tobą, w pewnej nie.
    Ale to duperele, nie warto tutaj sobie zawracać tym głowy. A co się zaś tyczy
    fragmentu Twojego wpisu, którego nie wycicachałem, no to cóż..

    Jak nie wyciachałem, to wypadałoby wdać się w polemikę, a nie jak niejaki AL "idziesz
    do KF", bo tak każdy dzieciak potrafi.

    No to wdaję się w ową. Co było pierwsze? Jajco, czy kura? Hmmm.. Mamy drobny
    problem..

    Co było pierwsze: program, czy komputer ? I co jest ważniejsze? Program czy komputer?

    Tak z historycznego punktu widzenia, to chyba najpierw został skonstruowany ENIAC,
    następnie maszyny typu IBM360/ODRA1305, systemy operacyjne GEORGE2,
    aż w końcu pojawił się geniusz A.L. , dzięki któremu wylądowałem w kiblu (KF).


  • 28. Data: 2014-10-05 21:23:58
    Temat: Re: Procesory wielordzeniowe
    Od: Marek Borowski <m...@n...com>

    On 2014-10-05 19:50, Jacek Radzikowski wrote:
    > s...@g...com wrote:
    >
    >> W dniu niedziela, 5 października 2014 12:01:53 UTC+2 użytkownik Jacek
    >> Radzikowski napisał:
    >>> W skrócie wygląda to tak, że zawartość cache nie odwzorowuje liniowo
    >>> jednego
    >>>
    >>> wielkiego obszaru pamięci, a wiele stosunkowo niedużych stron. Strony
    >>>
    >>> sąsiadujące ze sobą w cache mogą w pamięci głównej być położone daleko od
    >>>
    >>> siebie.
    >>
    Zawsze mi sie wydawalo ze cache trafia linia na nie cala strona. ;-).


    > Jeśli strona siedzi w cache to cała procedura nie zajmuje nawet jednego
    > cyklu zegara. Dzieje się tak dlatego, że tablica translacji jest
    > zaimplementowana jako pamięć asocjacyjna - taka sprzętowa baza danych
    j.w. przewaznie zbiorowo asocjacyjna.

    >>> przewidywania skoków i cała masa innej magii zaimplementowanej w
    >>> nowoczesnym
    >>>
    >>> procesorze.
    >> Ano właśnie ta magia.. Na czym owa predykcja polega? Może się mylę, ale
    >> coś mi tu pachnie marketingowym bełkotem.
    Jednej z lepszych algorytmow przewidywanie skokow zaimplementowany w
    procesorze Citrix byl taki: skok wykonywany jest zawsze :-).
    I co ciekawe nie odstepowal tragicznie od uwczesnego mu pentium intela
    ktore (o ile dobrze pamietam) mialo liczniki trafien predykcji.


    >
    > To nie jest bełkot marketingowy, a jeden (kilka?) z doktoratów. Nie wiem jak
    > to działa w szczegółach, ale polega mniej-więcej na tym że jak układ
    > sterujący wykonaniem rozkazów widzi w kolejce instrukcję skoku to będzie się
    > starał przewidzieć która strona pamięci będzie potrzebna i zleca układowi
    > cache żeby ją ściągnął. W ostateczności może zawsze upewniać się że dostępny
    > jest kod dla obydwu wariantów, ale to jest bardzo naiwne i nie-ekonomiczne
    > podejście.
    >
    Mozna tez jak ARMie miec instrukcje ktore sa zawsze przepychane przez
    pipeline ale z zaleznosci od flagi wykonywane bardz ignorowane.

    > Ani kompilator ani Ty nie musicie się przejmować panowaniem nad
    > stronicowaniem. To jest robota układu zarządzania cache zaszytego w krzemie
    Stronicowanie ma niewiele wspolnego z cache i bez wsparcia programowego
    nie dziala. Zdaje sie ze miales co innego na mysli ;-).

    > tuż obok rdzenia procesora.
    >
    Mozna by odniesc wrazenie ze piszesz ogolnie o sprzecie. Nie jest tak
    dobrze, chociazby bariery pamieci nas w programie nie omina.


    Pozdrawiam

    Marek



  • 29. Data: 2014-10-05 21:49:19
    Temat: Re: Procesory wielordzeniowe
    Od: s...@g...com

    W dniu niedziela, 5 października 2014 20:29:20 UTC+2 użytkownik A. L. napisał:
    > On Sun, 5 Oct 2014 09:57:53 -0700 (PDT), s...@g...com wrote:
    >
    >
    >
    > >W dniu niedziela, 5 października 2014 18:19:18 UTC+2 użytkownik A. L. napisał:
    >
    > >
    >
    > >>
    >
    > >>
    >
    > >> Idziesz do KF. Permanantnie. Z burakami nie rozmawiam.
    >
    > >>
    >
    > >
    >
    > >Ależ proszę bardzo, jak Guru z erystyką nie daje sobie rady, to najprościej nie
    słuchać adwersarza.
    >
    > >
    >
    > >A odnośnie epitetów, to radzę trochę przystopować. W najlepszym przypadku możesz
    być Pan postrzegany na grupie w/g użytego przez Pana określenia.
    >
    > >
    >
    > >Tymczasem do zobaczenia w KF.
    >


    Brak konsekwencji. Podobno jestem w KF. Do zobaczenia w KF? Weż wyluzuj.. Albo
    dyskutuj tutaj, albo sam się zkilfajluj.


  • 30. Data: 2014-10-05 22:38:43
    Temat: Re: Procesory wielordzeniowe
    Od: bartekltg <b...@g...com>

    On 05.10.2014 21:23, Marek Borowski wrote:
    >>>
    > Zawsze mi sie wydawalo ze cache trafia linia na nie cala strona. ;-).

    > Mozna by odniesc wrazenie ze piszesz ogolnie o sprzecie. Nie jest tak
    > dobrze, chociazby bariery pamieci nas w programie nie omina.


    W cache ląduje całą linia. A jak to jest z transportem w górę?
    Mamy problemy z false sharing, ale jest on tylko wydajnościowy,
    jeśli na raz będę zapisywał jednym wątkiem do tablicy w miejscach
    parzystych, drugim w nieparzystych, poza wydajnością wszystko
    będzie w porządku. Czyli nie pcham w górę całej linii.
    Jak to jest sprzętowo?
    [a do tego kołacze mi się instrukcja MOVNTQ, która wysyła
    dane do pamięci 'z pominięciem cache']

    pzdr
    bartekltg




strony : 1 . 2 . [ 3 ] . 4 . 5


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: