2. Mátyás Zoltán
• Villamosmérnök (BME)
• Vezető fejlesztő, Architect, Team Lead
• J2SE, Eclipse
• Kemény valós idejű rendszerek
– Kommunikációs protokollok
– Worst-case latency számolás
• 3 világszabadalom
– CAN
– GPU programozás
5. CPU, GPU, APU
• CPU
– Egyszerű végrehajtó egység
– Általános célokra
– 4 integrált mag
• GPU
– Magasabb számitási teljesitmény
– 2D/3D megjelenités
– Csak grafikai célokra
– Szűk műveleti kör
• APU
– CPU és GPU funkció egy chip-en
– Általános célokra
– Nagyon magas számitási teljesitmény
– Mai CPU-k APU-k is egyben
6. API-k, Környezetek
• nVidia
– CUDA C/C++, JCUDA
• Windows
– DirectCompute
• Released with DirectX11
• Cross-Vendor
– OpenCL
8. Nehézségek I.
• Nem általános célú processzor
– Akkor gyors, ha minden egység ugyanazt a múveletet végzi
• Párhuzamositási probléma
– Szálak közti szinkronizáció
• APU problémák
– Stack mérete nagyon kicsi
• Rekurzió nem támogatott (le se fordul a kód)
• Stack használatát minimalizálni kell
– Paraméterek száma
– Belső változók
– Inline függvények
• Bementi adatok helyes használata
– Duplikáció kerülése
– Keresés mellőzése
10. Memória model
• Globális memória
– Nagy kapacitás
– Lassú elérés
• Érdemes minél kevésbé használni
• Konstans memória
– Kis kapacitás
– Gyors elérés
– Read-only
• Lokális memória
– Gyorsabb elérés
– Kis kapacitás
– Random access
• Privát memória
– Nagyon gyors elérés
– Pár 100 kb
– Random access
11. Összefoglalás
• GPU – Nem csak grafika
• CPU, GPU, APU
• Fejlesztői környezetek
• Nehézségek, megoldások