• ú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í
    TRANCEWARP
    TRANCEWARP --- ---
    Zdravim panove, na doporuceni hazim i sem, treba to nekdo budete schopny vyresit...

    Mame tu takovou perlicku.

    Pro hru http://fantasy.sport.cz hledame nalezeni optimalni sestavy.

    Ve hre je mozne si sestavit team 11 hracu z nabidky v lize. Podle toho, jak potom hraji ziskaji body.
    viz http://fantasy.sport.cz/gambrinusliga/docs/pravidla

    My hledame nejlepsi sestavu, ktera by byla mozna za kolo.

    Tzn. najit 11 hracu z 400-1200 hracu, s temito omezenimi:

    * maximalni bodovy zisk
    * z kazdeho tymu v lize smi byt v sestave pouze 3 hraci
    * tym musi byt levnejsi, nez vsechny ostatni potencialni tymy, ktere by mely stejne bodu
    * sestava se musi s cenou vejit do 100 milionu
    * hraci mohou byt jen na pro ne vhodne pozice podle mozne formace, ty najdete v dropdownu na strance hry, tzn. 1 brankar, 2-4obranci, 2-4 zaloznici, 1-3 utocnici

    Jedna se defakto o problem batohu. Sami jsme to tu uz resili, ale ma to enormni slozitost a my to potrebujeme pocitat relativne rychle. Hraje se to kazdy tyden, takze cilovy algoritmus se musi dobrat SPRAVNEHO vysledku behem max nekolika hodin.

    Pozor, ruzne optimalizacni pristupy mohou zpusobit dostat se pouze k lokalnimu maximu, my opravdu potrebujeme vedet, ze to je ta spravna sestava.

    System je napsany v ruby, pokud to budete delat v necem jinem, dejte mi vedet. Mohlo by se to pocitat nekde oddelene, coz stejne bude, jelikoz tim nechceme zatezovat produkcni systemy.

    Price money 10000 Kc + pripadne dalsi penize za konzultace atd.
    Pokud s tim budete chtit zacit, dejte mi vedet do posty, muzu vam poslat testovaci data.
    MAIMONIDES
    MAIMONIDES --- ---
    Za poslední rok 4 návštěvy. Inu, jestli se někdo nevyjádří jinak, klub smažu či předám.
    3MARIE
    3MARIE --- ---
    pristi Matlab bude mit CUDU nejspis implementovanou v nekterej funkcich (FFT, matrix operations). je to nevyhnutelny.
    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.
    Kliknutím sem můžete změnit nastavení reklam