( asch | 2022. 05. 17., k – 17:30 )

pk, qk értéke mi? Ez valami rádiós mintázat, ami egy adott átviteli csatornához tartozik?

N értéke mennyi? Az nem ugyanaz, mint az nnode, ami pedig 8? Félreértem?

Nagyjából megértettem: z-ben, ami a programban a sib_buffer nnode*nsample*2 darab érték van (nnode*nsample komplex szám). Szerintem az első probléma az, hogy nem lineáris így a forrás buffer elérése, a k szerinti címzés miatt ugrálva kell kiolvasni. Jobb lenne, ha a k szerinti értékek egymás mellett lennének, akkor lineárisan olvasná végig a forrást a program. A memória elérés általában szereti, ha sorban olvassuk a memóriát. (És a SIMD utasításoknak is ez előfeltétele, ha jól emlékszem.) (Bár PC-n nem mértem még, de más processzoron így volt, hogy ha sorban olvastuk és írtuk a memóriát, az kb másfélszer gyorsabb volt mintha nem. PC-n szerintem a cache-be egész sorokat tölt be a RAM-ból a PC, és ha nem sorban olvassuk, akkor elérhetjük, hogy kikerül a cache-ből az adott sor mire újra rákerülne az olvasás.)

Lásd: "opcionalisan annyi lehet a konnyites hogy a rot_cos, rot_sin ertekek valojaban i16-osak es a ci/cq ertekek pedig i8-asok" Tehát ezekből 4 illetve 8 közlekedhet egyetlen memória művelettel! Sőt, a rot értékek ha kevés elemű táblázatok, akkor teljes egészében regiszterben is tárolhatók lehetnek.

Hasonlóan a sif_out_buffer kiírását is lehet optimalizálni, ha többet egyszerre írunk ki.

Ha összesen 8 féle együttható van, és ezeket sorban használjuk fel, akkor mindenképpen valahogy "tudatnám ezt a programmal", hogy az index csak lépegessen, de ne memóriából jöjjön, és vagy egy kicsi tömböt indexelve működjön, vagy még jobb, ha ki van hajtogatva a ciklus, ahogy mások is írták. Fontos volna, hogy a kihajtogatást lehetővé tedd a fordítónak: az nnode értéke konstans legyen a fordító számára is!

 

 

GPU témája: Ha hinni lehet az Internetnek, akkor 23 execution unit van a GPU-jában:

* Intel® UHD Graphics 630 van benne eszerint: https://ark.intel.com/content/www/us/en/ark/products/201890/intel-core-…

* Aminek 23 exec unitja van eszerint: https://www.techcenturion.com/intel-uhd-graphics-630

Szóval nem lehetetlen, hogy működne. Elképzelhetőnek tartom, hogy ebben a feladatban kisebb energiafelhasználás mellett jobb teljesítményt adna a GPU, mint a CPU. De ne is feszegessük, valóban rengeteg plusz munka ilyet programozni, és kétséges az eredmény.