Keresés

Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz JColee #55 üzenetére

    "Nem tudom, te mire gondolsz kézi kód alatt."

    Nagyjából azt, amikor HDL kóddal úgy körülírod a HW-t, hogy "eszébe se jusson" mást fordítani, mint amit te eredetileg elterveztél, ahelyett, hogy magát a problémát írnád le, aztán majd hardveresen lesz belőle, amit jónak lát.

    "olyat is egyszerűsített, amit nem kellett volna."

    Ezzel bizony vigyázni kell. De nem csak itt.

    "We spared no expense"

  • cousin333

    addikt

    válasz Rive #52 üzenetére

    Azt szoktam mondani, hogy egy jó találmánnyal két probléma lehet: ha túl későn érkezik, vagy ha túl korán. Lásd a Dell 5"-os mobilját, és annak "sikerét" összevetve a mai, akár még nagyobb telefonokéval.

    "de egyelőre biz' a szoftveres cuccoknak áll a zászló"

    HW-ből szerintem nem sok minden áll közelebb a szoftverhez, mint az FPGA. Főleg, hogy még CPU-t is implementálhatsz bele, akár szoftosan, akár hardosan... :)

    "We spared no expense"

  • cousin333

    addikt

    válasz JColee #51 üzenetére

    "Szerintem pont a komplexitás növekedésével lesz egyre pazarlóbb a szintetizált hardver."

    Mihez képest? A kisebb komplexitáshoz képest biztosan. A kézi kódhoz képest már nem annyira. Itt arra gondolok, hogy esetleg olyan összefüggéseket, egyszerűsítéseket "lát meg", amit te már nem látnál át a kód mérete miatt. A fejlesztés sebessége meg határozottan gyorsabb lesz. Nem beszélve a kipróbált kitesztelt modulok alkalmazásáról, szemben a fifikás egyedi optimalizációval, amiről csak később derül ki (sok-sok munka árán), hogy bugos vagy nehezen bővíthető, hordozható.

    "Azért lássuk be, ez eléggé ködös bullshit"

    Nem bullshit, de igaz, nem is fejti ki az igazság minden részletét... :)

    "We spared no expense"

  • cousin333

    addikt

    válasz lenox #45 üzenetére

    Hosszútávon az a lényeg, hogy ne kelljen hozzá annyira érteni. Nyilván nem lesz sosem olyan, mintha direktbe, optimálisan írnád meg. Bár azért egy bizonyos komplexitás felett a fordító csinálhat jobb HDL kódot, mint amilyet te írnál, még ha értesz is hozzá. De legalábbis gyorsan elkészülne vele, míg mire te a kézi módszerrel készítesz valami igazán ütőset, ami esetleg rosszabbul hordozható vagy skálázható, addigra ott a 2x jobb hardver.

    A másik, amit említettél is, hogy itt a tudás a lényeg. Az, hogy mit akarsz implementálni, és nem elsősorban az, hogy hogyan. Márpedig valószínű, hogy a tudás birtokosa (pl. egy részecske-fizikus) jobban átlátja, hogy mit akar, mint az, aki amúgy penge az FPGA-k terén.

    [ Szerkesztve ]

    "We spared no expense"

  • cousin333

    addikt

    Pár gondolat (igyekszem 1 hsz-ben :U ):

    VaniliásRönk (#3): Az FPGA-k lényege benne van a nevében: Field-Programmable Gate Array. Ezek mindig is programozhatóak voltak és most sem lesz ez másképp.

    korcsi (#5): Szerintem alapvetően nem nehéz programozni, csak szokatlan. Mármint a "hagyományos" programozáshoz képest. Itt az egyes elemek/modulok valóban párhuzamosan, egymástól függetlenül futnak, nem csak látszólag, mint egy 1 magos processzornál (de a 8-cal is hasonló lenne a helyzet).

    JColee (#13): "Szóval a cikk jobban körüljárhatta volna az egész témakört, leírhatta volna az fpga-k lelki világát."

    Ez egy hír, nem cikk. FPGA-k körüljárása kicsit több időt (és oldalt) igényelne. :)

    VaniliásRönk (#17): "Szoval egy FPGA-ban "egyszeruen" ossze vannak hanyva a funkciok, aztan mazsolazd ossze ami kell?"

    Mint már többen is írták, alapvetően nem. Van egy alap modul, ami képes 1-2 bitet tárolni, illetve 4-6 bemenet összes létező kombinációjára egy 1-2 bites kimenetet adni, ami így elmondva nem túl sok. De ezekből van több százezer, vagy millió, abból azért már elég komplex dolgokat lehet kihozni. Mindezek mellé van egy rugalmas vezetékezés az egyes komponensek között.

    Bada Bing (#24): Azt se felejtsük el, hogy ezen programozható elemek mellett vannak fixen bedrótozott modulok is a legalapvetőbb funkcióknak, úgyis mint RAM (akár MB-os nagyságrendben) vagy DSP (szorzásra) vagy éppen nagy sebességű soros kommunikáció lehetősége.

    VaniliásRönk (#26): "Rendben, de akkor hol van a dolog szépséghibája? Mert pl. szuperszámítógépekben nem látom akadályát miért ne terjedtek volna el eddig is tömegesen."

    Ahhoz, hogy használható legyen, kell kiforrottság HW és SW (pl. fordító) terén, értelmes léptékű erőforrások és nem utolsó sorban piaci igény (esetleg kényszer) a változásra.

    "Fontos információ, hogy az Intel egyedüliként az Altera-nak végez bérgyártást"

    Más kisebb FPGA gyártóknak is nyújt ilyesmit pl. Achronix.

    dezz (#33): DevKit? Miért kellene azt megvenni? Nem egy fejleszteni akarnak elsősorban, hanem futtatni. Na meg számolni. Ahhoz meg nem kell sok extra komponens. A jelenlegi (nagy) FPGA-kat viszonylag kis szériában gyártják, ha nő az érdeklődés, az ár is csökken.

    NetTom (#36): "Az FPGA csak ott alternatíva ahol nem éri meg sorozatgyártani egy adott spéci áramkört a kis volumen miatt."

    Mint például HPC-kben? :) Gondolom ott éppen hogy jól jön a rugalmas áramkör (pl. ha éppen 19 bites regiszter kell, akkor olyat implementálnak, nem 32 vagy 64-est). Meg aztán az, hogy hány darab éri meg, folyamatosan változik, és gyanítom, hogy nő ez a szám.

    "Maximum abban hogy egyes egyedi részfeladatok egy egy spéci áramkörrel gyorsíthatóvá válnak"

    És ez nem elég? Pont az a lényeg, hogy ezekre az egyedi részfeladatokra már nem a CPU-t vagy a GPU-t kell használni, tehát vagy csinálhatnak közbe mást, nincs szükség olyan sokra belőlük.

    lenox (#38): "Azt a reszet nem latom, hogy miert lesz igy jobb, ha opencl-lel lehet programozni."

    Mert lesz egy magasabb szintű programozói felületed, ami esetleg transzparensen is működhet a GPU és az FPGA (és a CPU) között. A hardverek viszonylag gyorsan fejlődnek, egy bizonyos szint után már jobb, ha inkább a szoftverfejlesztést gyorsítod (egyszerűsíted), akár a HW követelmény kárára is.

    Még pár megjegyzés:

    1. Az FPGA elég egyszerű felépítésű, elég hamar át is állnak mindig a kisebb csíkszélességre.

    2. A "fordítás" sok időt vehet igénybe, de ha komoly számítási mennyiséghez kell, akkor esetleg megéri az a néhány perc (óra, nap...).

    3. A mai FPGA-k esetén nem kell feltétlenül mindig mindent "lefordítani". Lehet előre "legyártani" kisebb modulokat, amiket aztán igény szerint, akár futás közben is cserélgetsz, lásd dinamikus (parciális) rekonfiguráció. Ez kicsit olyan, mintha a videokártyádban az éppen aktuálisan futtatott játék igényétől függően állíthatnád be a különböző feldolgozóegységek arányát (ehhez több textúrázó kell, ahhoz inkább több raszterizáló egység... stb.).

    "We spared no expense"

Új hozzászólás Aktív témák