Szorgalmi feladatok

1. feladat: 5x5 konvolúció x86 CPU-n

A kiinduló project az első gyakorlat anyaga (lásd jegyzetek oldal).
E-mail-ben elküldendő (szanto@mit.bme.hu):

  • Forráskód
  • Visual Studio 2015 project, vagy Windows alatt futtatható állomány
  • Az összehasonlíthatóság érdekében minden beküldött megoldás ugyanazon a processzoron futtatok, Így legfeljebb AVX2 utasításkészlet használható.

A cél a minél nagyobb teljesítmény elérése. Nem kihasználható, hogy a projektben az együtthatókészlet fix, és mind a három színkomponensre el kell végezni a műveletet, annak ellenére, hogy a be- és kimeneti file az átlátszóság komponenst nem tartalmazza.

Pontozás:

  • A leggyorsabb megoldás beküldője 5%-t kap, a következő 4%-t, a harmadik pedig 2%-t. Aki a referencia időnél gyorsabb, vagy megegyező verziót készít (függetlenül attól, hogy hány ilyen van), 8%-t kap. A saját gépen történő méréséhez SSE2-t használó 32 bites exe, illetve AVX-t használó 64 bites exe áll rendelkezésre (TBD). Mindkét program 100x futtatja le a konvolúciót, a kiírt idő egy futás ideje ms-ban, illetve az ebből számolt feldolgozási sebesség MPixel/s-ban.

Eredmények:

  • Referencia futási idő: TBD

Beadási határidő: 2019. 10. 21.

 

2. feladat: 5x5 konvolúció CUDA-val

A kiinduló project a második és harmadik gyakorlat anyaga. A pontozás ugyanaz, mint az 1. feladatnál.

Módosítható:

  • Thread block mérete, grid mérete
  • Minden kernel-ben használt változó típus, memória méret

Nem módosítható:

  • A teljes kép minden pixelének minden RGB csatornáját ki kell számolni
  • A bemenet a gyakorlaton használt kép.
  • Nem kihasználható, hogy az együtthatókészlet konstans.

Elküldendő a kernelt és a hoszt CUDA kódot tartalmazó .cu file, cuda_main_VEZETÉKNÉV.cu néven.

Az összehasonlíthatóság kedvéért minden kódot egy GPU104 GPU-t (GeForce GTX 1070) tartalamzó számítógépen futtatok, a kernel Visual Profiler-ben mért futási ideje minimalizálandó.

A GP104 GPU-n mért idők a gyakorlat során megvalósított kernelekkel: 8.85 ms / 2,79 ms / 2,55 ms / 2,39 ms. (Megj.: a float/float kernel futási ideje a bank ütközés mentes esetre vonatkozik. Lásd gyakorlat megoldások.)

Optimalizált kernel futási idő (referencia): 1,12 ms. Referencia exe (x64) letöltése. A kernel futási idejét a konzol ablakban írja ki (1000 futás átlaga), de (elkerülendő a saját megoldások befolyásolását :)) az alkalmazásban a Profiler használata le van tiltva.

Beadási határidő: 2019. 12. 01.

 

© 2010-2019 BME MIT | Hibajelentés | Használati útmutató