140 likes | 255 Views
“Politehnica” University of Timişoara Automation and Computing University Computers Department. Parallelism Real Time. Anca Batori Lavinia Basarabă Anca Brandimbur. iunie 2010. Objectives.
E N D
“Politehnica” University of Timişoara Automation and Computing University Computers Department Parallelism Real Time Anca Batori Lavinia Basarabă Anca Brandimbur iunie 2010
Objectives • presenting the use of graphical processing units (GPU) to achieve significant improvements for real time systems • presenting the main steps for developing an application using CUDA • offering a source of resources
Contents • Introduction • Parallelism • Application description • Experiments • Conclusions
Introduction • Real Time Systems are an important area of research and development • Many applications: Airplanes, biomedical accelerators, nuclear power plants • Necessity of parallelism to achieve desired time limits
Parallelism • Can be hardware and software • GPUs represent a combination • GPUs have certain characteristcs, that CPUs do not poses, that can be useful for certain application • More processing power, less flexibility • The application are developed using CUBLAS
ArchitecturesCPU vs GPU • Cores number 4 • Threads 2 • Cache memory => random address acces • Cores number 240 • Threads 1024 • Cache memory => fast access to consecutive addresses Sursa:www.nvidia.com
Support Vector Machines (SVM) Possibilities to split two classes
CPU versus GPU • Speedup 54xfor1000 images • Even better results for bigger training sets
Multiclass SVM • “One Against All” (OAA) • training: M binary classifiers(M number of classes) • testing: strategy„the winner takes it all” • “One Against One” (OAO) • training : M(M-1)/2binary classifiers • testing : strategymaximum number of votes • “Directed Acyclic Graph” (DAG) • testing : decision tree
Multiclass Algorithms • NVIDIA GTX 280 • IDSIA sets
Conclusions • In the period of ubiquitous and pervasive systems, real time systems are a very important field • Since CPUs do not evolve, so fast as they used to, there is a shift towards parallel programming and more and more systems are developed this way • GPUs can improve the execution time for an application 100x times