• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    MAIMONIDESCUDA - supercomputer in every family

    CUDA
    Nvidia CUDA(Compute Unified Device Architecture) je jazyku C podobné programovací prostředí a příslušný software pro využívaní grafických karet od NVidie novější generace pro libovolné výpočetní účely. Mezi hlavní výhody patří rychlost dedikovaných procesorů a především masivní paralelismus. Podle okolností několik tisíc jednoduchých paralelních procesů a potom samozřejmě velice rychlá paměť na grafické kartě.
    rozbalit záhlaví
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    tohle je uplne jina granularita nez na ktery to znam ja.
    Nevim co delas v ty smycce, ale predpokladam ze to bude rozbity do vic kernelu (dost mozna o dost vic kernelu) a slo by to pekne uzonglovat s datama..
    Ale je to tak zakapotovany ze to nikdy nikdo neudela.
    Takze sorry, mels pravdu, pro tohle proste chces vic pameti a nic moc neresit. Me nejak nedoslo ze se CUDA uz realne pouziva uz v matlabu a takovejch vecech.
    3MARIE
    3MARIE --- ---
    ja tam prave neposilam uplne vsechno. pro kazdou cast GPU loopu tam poslu pouze relevantni vektor dat.

    DAVIDOWITCH
    DAVIDOWITCH --- ---
    Aha.. sorry.
    Ja pisu primo v C/C++ primo na CUDA, nepouzivam nic nad tim.
    Tam bude spousta magie mezi tim.

    warp je 32 threadu (cuda threadu), pulwarp je pak 16. Je to asi nejmensi jednotka co ma smysl pouzivat najednou. Jak funguje Jacket nemam nejmensi tuseni, ale je dost dobre mozny ze tady bude clovek realne limitovanej pameti protoze to bude mit tendence poslat uplne vsechno na GPUcko a pak nad tim operovat, misto toho aby tam posilal jen to co realne potrebuje.
    3MARIE
    3MARIE --- ---
    co je pulwarp ?

    ten muj algoritmus (neparalelizovane) bezi asi takhle:

    
    for i = 1:30
      for j = 1:40
        //operace, ktera nejspis potrebuje nekolik desitek mega pameti
      end
    end
    
    v jacketu (matlab) jsem to paralelizoval takhle
    
    for i = 1:30
      gfor j = 1:20
        //operace  
      gend
      gfor j = 21:40
        //operace
      gend
    end
    
    


    bezi mi to 10-15x rychlej nez na dual core stroji a v accelereyes tvrdi, ze to je tak optimum co clovek muze z jacketu vytahnout, takze jsem dal nezkoumal. jakej speedup to dava tobe ? pouzivas primo .cu nebo taky nejakej plugin ?

    v tom mym algoritmu kdybych dal tu vnitrni loop celou gfor j = 1:40, tak mi to zarve ze mam malo pameti, proto to delam nadvakrat. gfor je paralelni verze for.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    takze na ty gtx285ce nemas pustenej ani celej pulwarp?
    Tak to bych zkousel asi paralelizovat jinak (nebo sem to nepochopil)
    3MARIE
    3MARIE --- ---
    DAVIDOWITCH: bezi mi na tom analyza fazovych zavislosti lokalnich mozkovych potencialu. v podstate se zkouma zavislost amplitudy na fazi signalu ve frekvencnich pasmech, sirokych 2-5 Hz v rozmezi 0-200Hz. Kazde okno signalu je dlouhe treba 10sekund, pri 1000 Hz samplovaci frekvenci je to 10.000 samplu (16 bit resolution). u kazdeho okna se dela statisticky surrogate test (200 random shuffle serii), tzn. kdyz chci porovnat 2 ruzna pasma, potrebuju nekolikrat 200 * 10.000 samplu do pameti (jeden thread) - na gx285 se mi podari tehle paralelnich threadu pustit asi 15 (GFOR v Jacketu).
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    3MARIE: Errr.. coze? Ne?
    Pocet paralelnich threadu je omezenej:
    1) Kolik mas SM
    2) Kolik zere 1 thread registru
    3) Kolik zere 1 block shared memory
    4-5) Maximalnima limitama ma thread/blok
    6) Mozna taky maximalni pameti na grafice.

    Ta uloha by musela potrebovat takovy absurdni mnozstvi per-thread lokalni/globalni pameti, ze ti dojde pamet na karte driv nez narazis na cokoliv z bodu 1-5.
    Takova typicka aplikace ma 256 threadu/block, 16 registru/thread, => na 1.3 4 bloky/SM. Na GTX285 je 30SM, takze ti najednou bezi rekneme 30k threadu (me vetsinou spis 15k nebo 8k).
    Pri 1GB pameti mas 32kB dat na thread, nez te zacne omezovat bod #6. (A spis 64 nebo 128).
    Co na tom prosimte pocitas, ze ti je tohle malo?
    3MARIE
    3MARIE --- ---
    cim vic pameti, tim vic paralelnich threadu muzes pustit, takze by to melo bejt rychlejsi.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    Nevejdes se do pameti GTXek?
    3MARIE
    3MARIE --- ---
    ted by to akorat chtelo jeste tu teslu ;)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    CUDA 3.0 final je venku
    http://developer.nvidia.com/object/cuda_3_0_downloads.html
    a je tam popis Compute capability 2.0 (tj. fermi)
    3MARIE
    3MARIE --- ---
    za 19.000$ muzes mit 1U computer, se 4 CUDA GPU, 24GB a 2.5 teraflops. uiiiiiiiiiiiii
    ICE
    ICE --- ---
    3MARIE: hmm pekny! :).. jakpak by na tom asi bezel pyrit. :D
    3MARIE
    3MARIE --- ---
    tak novy tesly by mely byt behem dvou mesicu
    http://www.coolcomputing.com/article.php?sid=3401

    C2050 (520GFlops, 3GB) pujde za 2500$. nemuzu se dockat.


    DEJV
    DEJV --- ---
    3MARIE
    3MARIE --- ---
    prislo z mathworks dneska

    The MathWorks is planning to release multiple betas for enabling GPU computing directly from MATLAB. We expect the first beta release (Beta-1) to be available at the end of January 2010 and expect it to run for 8-10 weeks. We expect the second beta release (Beta-2) to be available in May 2010. Prior to the release of the software, we will contact participants with information about how to obtain the software and the capabilities included in it.
    3MARIE
    3MARIE --- ---
    tak sem nastartoval jacket 1.2.2 na matlabu 2009b a GX285. dema bezi v cajku, ale zatim z toho nemuzu vymacknout co potrebuju kvuli limitovanymu supportu matlabovskejch funkci v paralelnich GFOR loopech. Kazdopadne sem zkusil nasvindlovat data tak aby to GFOR vzala a vidim speedup 15-20x. Colon operator uvnitr GFOR by pry mel byt ve verzi 1.2.3, tak sem zvedavej.
    ICE
    ICE --- ---
    DEJV: napriklad (uz skoro mrtvou) demoscenu by to mohlo posunout zas o krucek dal.. .)
    3MARIE
    3MARIE --- ---
    nevim, jestli se tady objevil Jacket http://www.accelereyes.com/
    je to vlastne CUDA akcelerator pro Matlab. Ted by mela byt venku kratce nova verze, kterou se chystam otestovat...
    DEJV
    DEJV --- ---
    Napsal jste v tom uz nekdo nejakou realnou vec?

    Ja jsem se zatim dostal jen k tem zakladnim vecem typu ALife, videl jsem nejake implementace v oboru vypocetni chemie, ale celkem by me zajimalo jestli to tady nekdo pouziva v nejakych aplikovanych neakademickych oblastech.
    Kliknutím sem můžete změnit nastavení reklam