From 6c8cbbe48cbdc6d968b75636ab74804c9c20f2a8 Mon Sep 17 00:00:00 2001 From: Daniel Gyulai Date: Wed, 2 Mar 2022 18:36:42 +0000 Subject: [PATCH] Doc - Histogram/local1 --- Primitives/primitives.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/Primitives/primitives.md b/Primitives/primitives.md index d57e188..ebb3500 100644 --- a/Primitives/primitives.md +++ b/Primitives/primitives.md @@ -47,4 +47,38 @@ tömb méretét!** Success ``` - A GPU sorok összehasonlításával leolvasható, hogy a kisebb értékkészlet jelentősen hosszabb futási időt erdményezett. Ez visszavezethető arra, hogy a szálaknak várakozniuk kellett egymásra, amíg a hisztogram értékeit frissítették. \ No newline at end of file + A GPU sorok összehasonlításával leolvasható, hogy a kisebb értékkészlet jelentősen hosszabb futási időt erdményezett. Ez visszavezethető arra, hogy a szálaknak várakozniuk kellett egymásra, amíg a hisztogram értékeit frissítették. + +### Lokális memória + +Az implementációban a munkacsoportok először lokális memóriába írják számításaikat, majd azzal frissítik a globális adatokat. Az algoritmust alkotó pszeudokód; + +``` +ID := get_global_id(0) +LID := get_local_id(0) + +IF LID < histogramSize DO: + lhistogram[LID] := 0 +BARRIER + +lhistogram[data[id]] := lhistogram[data[id]] + 1 + +BARRIER + +IF LID < histogramSize DO: + histogram[LID] = lhistogram[LID] +``` + + **1. Vizsgálja meg, hogy mi történik barrier hívások használata nélkül. Helyes-e az eredmény?** + + Barrier hívások nélkül a kernel helytelen eredményt ad. + + **2. Hasonlítsa össze teljesítmény szempontjából a globális és a lokális memóriában végzett +hisztogram számtást!** + + Az összehasonlításhoz egységesen 4096 elemű, de változó értékkészletű vektorok hisztogramját számítottam ki. Az alábbi táblázatban az oszlopok az értékkészlet nagyságát jelölik, a sorok a globális, illetve a lokáis kerneleket, a cellák pedig az egyes futási időket egy adott típusó kernelhez egy értékkészleten. + + | / | 2 | 128 | **200** | **250** | + | --- | --- | --- | --- | --- | + | **local** | 0.006592 ms | 0.004064 ms | 0.004512 ms | 0.004448 ms | + | **global** | 0.00784 ms | 0.0064 ms | 0.0064 ms | 0.005952 ms |