A feladathoz tartozó host kód a `primitives/Histogram.cpp` fájlban található.
### Globális memória
### Globális memória
Az implementációban csak a globális memória kerül felhasználásra, az alábbi pszeudokód szerint:
Az implementációban csak a globális memória kerül felhasználásra, az alábbi pszeudokód szerint:
@ -11,7 +13,7 @@
histogram[data[id]] := histogram[data[id]] + 1
histogram[data[id]] := histogram[data[id]] + 1
```
```
A feladathoz tartozó kód a `primitives/Histogram.cpp` fájlban találhatóak.
**1. Vizsgálja meg, hogy mi történik szinkronizáció nélkül! Helyes-e a kiszámolt eredmény?**
**1. Vizsgálja meg, hogy mi történik szinkronizáció nélkül! Helyes-e a kiszámolt eredmény?**
@ -83,4 +85,29 @@ hisztogram számtást!**
| **local** | 0.006592 ms | 0.004064 ms | 0.004512 ms | 0.004448 ms |
| **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 |
| **global** | 0.00784 ms | 0.0064 ms | 0.0064 ms | 0.005952 ms |
A futási időkből látszik, hogy a lokális memóriát használó kernel minden értékkészletre gyorsabb, viszont a lokális és globális kernelek is gyorsabban futnak, ha ez az értékkészlet nagyobb.
A futási időkből látszik, hogy a lokális memóriát használó kernel minden értékkészletre gyorsabb, viszont a lokális és globális kernelek is gyorsabban futnak, ha ez az értékkészlet nagyobb.
## Összegzés redukcióval
A feladathoz tartozó host kód a `primitives/ReduceAdd.cpp` fájlban található. Az implementáció során a programs.cl forrásfájl pszeudokódja alapján dolgoztam, és feltételeztem, hogy a tömb mérete legfeljebb a workgroup megengedett maximális mérete.
## Exkluzív prefix összeg scan operátorral
A feladathoz tartozó host kód a `primitives/ExclusiveScan.cpp` fájlban található.