CPU renderelés
Közzététel itt Szakmai munka · Szerda 12 Ápr 2023
A ZEUSZ alkalmazásom egyik vicces tulajdonsága, hogy a Pegazus renderelő motorját már az alapjaitól CUDA alapokon írtam meg, azaz extrém párhuzamosított renderelés szellemében íródott. Ezt annyira komolyan vettem, hogy CPU alapú változatot el sem készítettem!
![](../images/cpu_render.jpg)
Azóta is furdalt azonban a kíváncsiság, hogy CPU-ra átírva milyen sebesség érhető el. Arra még emlékszem, hogy egy korai renderelő motorom nagyjából 1-2 millió poligont tudott másodpervenként kirajzolni, tehát hasonló ereményre számítottam.
Két estét rászántam a dologra és sikerült is tető alá hoznom a programot. A várakozásoknak megfelelően kb. 1 millió háromszög/mp sebességű lett a dolog és ez is csak az alábbi "icipici", kb. két vármegyényi domborzati adat vonatkozásában.
![](../images/cpu_render.jpg)
A dolog azért megdöbbentő, mert ez kb. 150-200-szor lassabb a GPU alapú rendereléshez képest. Elképesztő, hogy CUDA-val milyen gyorsulásokat lehet elérni! Pedig szeretném, ha legalább kis területek vonatkozásában elfogadható sebességeket össze lehetne hozni CPU alapon is.
Annyit még megteszek a dolog érdekében, hogy az egyszálú változatot átírom többszálú (8-16 szál) CPU rendereléssé. Milyen szerencse, hogy pont erről a témáról írtam könyvet nemrégiben... Nagy csodára nem számítok, de azért némi (3-5-szörös) gyorsulásra igen.
Ez az egész nem öncélú, ugyanis el szeretném kezdeni a ZEUSZ olyan irányú bővítését, ami lehetővé teszi, hogy renderelő farmok formájában is lehessen használni több számítógépet, de olyanokat is, amelyek nem rendelkeznek CUDA gyorsítású videokártyákkal.