nemlineárisoptimalizálásiproblémákpárhuzamos...
TRANSCRIPT
MotivációEredményekÖsszefoglalás
Nemlineáris optimalizálási problémák párhuzamosmegoldása grafikus processzorok felhasználásával
Sipos Ágoston1
1Eötvös Loránd Tudományegyetem,Informatikai Kar
Kari TDK, 2016. 05. 10.
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Numerikus optimalizálásOptimalizálási feladatok
argminx
f (x)
Illesztések
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Numerikus optimalizálásOptimalizálási feladatok
argminx
f (x)
Illesztések
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Numerikus optimalizálásAutomatikus differenciálás
Automatikus differenciálásDuális számokat használPontosCsak explicit módonmegadható, elemifüggvényekre használható
Numerikus differenciálásVéges differenciákathasználGyors, de numerikusanpontatlanBármilyen kiértékelhetőfüggvényre alkalmazható
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
GPU programozás
Eredetileg grafikai számítások elvégzésérePárhuzamosítottságot támogatNagy számítási kapacitás kiaknázható
Számítógépes látásban sok ezer adatpont −→ jó apárhuzamosítás
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
GPU programozás
Eredetileg grafikai számítások elvégzésérePárhuzamosítottságot támogatNagy számítási kapacitás kiaknázható
Számítógépes látásban sok ezer adatpont −→ jó apárhuzamosítás
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
AlkalmazásokSzámítógépes látás
SíkhomográfiaKamerakalibráció
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
AlkalmazásokSzámítógépes látás
SíkhomográfiaKamerakalibráció
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Google Ceres
Jelenleg a legkorszerűbb numerikus optimalizációs rendszer
Nyílt forrású, C++ template könyvtárAutomatikus differenciálást is használ
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Numerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
Google Ceres
Jelenleg a legkorszerűbb numerikus optimalizációs rendszer
Nyílt forrású, C++ template könyvtárAutomatikus differenciálást is használ
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Duális számok
Komplex számokhoz hasonló algebrai struktúra
(a, b) · (c , d) = (a · c , b · c+a ·d)
C++ template osztállyal jól kezelhető
Pontos deriváltkiértékelésre alkalmas (automatikus deriválás)
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Duális számok
Komplex számokhoz hasonló algebrai struktúra
(a, b) · (c , d) = (a · c , b · c+a ·d)
C++ template osztállyal jól kezelhető
Pontos deriváltkiértékelésre alkalmas (automatikus deriválás)
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Duális számok
Komplex számokhoz hasonló algebrai struktúra
(a, b) · (c , d) = (a · c , b · c+a ·d)
C++ template osztállyal jól kezelhető
Pontos deriváltkiértékelésre alkalmas (automatikus deriválás)
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Kódgenerálás
Matematikai függvények (Rn→ R) kódjainak generálására
Duális számok segítségével deriváltak kódját is elkészíti
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Kódgenerálás
Matematikai függvények (Rn→ R) kódjainak generálására
Duális számok segítségével deriváltak kódját is elkészíti
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Deriváltkiértékelés
SIMD paradigma használatával
n
∑i=0
fi (p,xi)
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
AlgoritmusokNumerikus optimalizálás
Gradiens módszer
Gauss-Newton módszer
Levenberg-Marquardt módszer
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
AlgoritmusokNumerikus optimalizálás
Gradiens módszer
Gauss-Newton módszer
Levenberg-Marquardt módszer
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
AlgoritmusokNumerikus optimalizálás
Gradiens módszer
Gauss-Newton módszer
Levenberg-Marquardt módszer
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
KonvergenciaKörillesztés
A körillesztés - generált kezdőkörökre - mindig konvergált.
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
KonvergenciaEllipszisillesztés
Az ellipszisillesztés - kevés kivételtől eltekintve - konvergált.
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Hatékonyság
Az OpenCL lehetővé teszi a hardverválasztást.
CPU-n futtatott tesztekGPU-n futtatott tesztek
}−→összehasonlíthatók
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
HatékonyságKörillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
HatékonyságEllipszisillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Tartalom
1 MotivációNumerikus optimalizálásGPU programozásAlkalmazásokGoogle Ceres
2 EredményekMegvalósításElemzésHomográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
MegvalósításElemzésHomográfiaillesztés
Homográfiaillesztés
Sipos Ágoston
MotivációEredményekÖsszefoglalás
Összefoglalás
Egy OpenCL alapú numerikus optimalizálási rendszer.Többféle (illesztési és számítógépes látási) problémánvalidálva.
Kitekintés
További feladatok megoldása.Hatékonyság további javítása.
Sipos Ágoston
Appendix
Irodalom (kivonat)
Jeffrey A. Fike, Juan J. Alonso.The Development of Hyper-Dual Numbers for Exact SecondDerivative Calculations.2011.
John E. Stone, David Gohara, Guochun Shi.OpenCL: A Parallel Programming Standard for HeterogeneousComputing Systems.2010.
Sameer Agarwal, Keir Mierle and Others.Ceres Solver.http://ceres-solver.org
Sipos Ágoston
Appendix
Vége
Köszönöm a figyelmet!
Sipos Ágoston