Keresés

Hirdetés

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

  • killerjohn

    addikt

    válasz LordX #13 üzenetére

    mondtam én hogy nem? köszi hogy elmagyaráztátok ketten is az intern-t ;)

    viszont ennyi erővel kb fújhatom az egészet, mivel intern nélkül kellene még 100 GB RAM :) biztos vagyok benne hogy meg tudnák oldani ez hatékonyabban is... (mármint az intern belső mechanizmusát)

    a plinq-et meg inkább hagyjuk, mert oké hogy párhuzamosított, de maga a linq, mint iteratorokra alapuló, lassú szemétkupac annyival lassabb, mint egy rendesen megírt kód, hogy szvsz a párhuzamosítás miatt sem éri meg használni. ha nálunk valakinek a kódjában meglátom a linq szót, vagy a foreach-et, akkor első, majd második figyelmeztetés, aztán fired (idáig még senki sem merészkedett :) )...

  • P.H.

    senior tag

    válasz LordX #27 üzenetére

    Ehhez nagyban hozzájárul a feltételes utasításvégrehajtás is. De pl. azon GPU-architektúrák, amelyek nem támogatják ezt, ott bonyolódik a helyzet. Két példa:

    NV PTX ISA: "Instructions are formed from an instruction opcode followed by a comma-separated list of zero or more operands, and terminated with a semicolon. Operands may be register variables, constant expressions, address expressions, or label names. Instructions have an optional guard predicate which controls conditional execution. The guard predicate follows the optional label and precedes the opcode, and is written as @p, where p is a predicate register. The guard predicate may be optionally negated, written as @!p."

    Az ARM is ismeri az alap utasítások jó részében a feltételes végrehajtást, azaz csak akkor hajt végre valamilyen (predicate-bit által) megjelölt utasítást, ha az előző valamelyik utasítás eredménye pl. 0 vagy negatív, stb.

    AMD GCN:
    Scalar ALU operations:
    Compare (integer, bit, min/max), move and conditional move (select operations based on SCC)
    A GCN ismeri a feltételes utasításvégrehajtást? Vagy csak azt a megközelítést, ami x86/x64-en is van?

    Mindegyik gyártó a saját alapjai felé dolgozik, a C++ AMP viszont gyártófüggetlen szoftveres megközelítés, nyilvánvaló érdeke, hogy elterjedjen mindenhol és mindenen. Ezzel lenne (nem csak az OpenCL, hanem) a CUDA és a HSA ellenfele is.

    [ Szerkesztve ]

    Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

  • dezz

    nagyúr

    válasz LordX #27 üzenetére

    Volt egy ideig, de egyre kevésbé, hiszen a minél hatékonyabb GPGPU-s felhasználás az egyik fő cél évek óta (nem csak szavakban).

    (#28) P.H.: Én nem látom, hogy a C++ AMP a HSA ellenfele lenne. (Sőt még talán a DirectCompute sem.) A HSA egy hw szintű specifikáció, aminek széles körű támogatása a hw gyártók részéről az egységes hw-kialakítás (már azon a szinten, amit a sw-ek és driverek látnak belőle) által elősegíti a sw gyártók heterogén/GPGPU irányba történő elmozdulását és megkönnyíti a MS dolgát is. Nem gondolom, hogy a HSA ilyen tekintetben akár az OpenCL-nek kedvezne, inkább talán fordítva, elősegítheti a C++ AMP egyszerűbb és zökkenőmentesebb alkalmazhatóságát, miáltal a "hétköznapi" programozók, akik amúgy is idegenkednek az OpenCL-től, jobban rákaphatnak a másikra. Az OpenCL meg megmaradhat az elszántabbaknak, akik kevésbé akarnak a compilerre hagyatkozni. (Inkább talán az a kérdés, hogy a HSA és a CUDA összeférhet-e valahogy egymással.)

    [ Szerkesztve ]

  • dezz

    nagyúr

    válasz LordX #31 üzenetére

    Az lehet, de mint itt elhangzott, GPU-knál inkább a feltételes végrehajtást és move-t alkalmazzák, ami ha jól értem, nincs SSE-nél, pedig ott is hasznos lenne.

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