Úkolem této práce je implementace trénování a klasifikace SVM klasifikátorů
na GPU. Je zde nastíněn úvod do programování v jazyce CUDA C, který
je také použit pro realizaci klasifikátoru se čtyřmi běžně používanými typy
kernel funkcí, tedy lineární, polynomiální, RBF a tangenciální. Dále je popsán
moderní a velmi rychlý algoritmus trénování SVM klasifikátorů - SMO.
Dalším úkolem je porovnání výsledků a časů běhu s veřejně dostupnými implementacemi
SVM na GPU a dále ještě s balíkem LIBSVM.
Důležitou součástí této práce je optimalizace implementovaného klasifikátoru
v programovacím jazyce CUDA C.
Anotace v angličtině
The goal of this work is an implementation of training and prediction of SVM
classifiers on GPU. There is a brief introduction to the CUDA C programming
language, which is also used for the implementation of a classifier with four
commonly used types of kernel functions, linear, polynomial, RBF and
tangential. Next goal is description of modern and very fast algorithm for
training of SVM classifiers - SMO. Another challenge is the comparison of
run times and the classification results with freely available libraries for
SVM classifiers using GPU and LIBSVM toolbox. An integral part of this
work is to optimize the classifier implemented in the CUDA C programming
language
SVM training, SVM classification, linear kernel function,
polynomial kernel function, Gaussian RBF, hyperbolic tangent function,
NVIDIA CUDA C, parallel programming on GPU
Rozsah průvodní práce
52
Jazyk
CZ
Anotace
Úkolem této práce je implementace trénování a klasifikace SVM klasifikátorů
na GPU. Je zde nastíněn úvod do programování v jazyce CUDA C, který
je také použit pro realizaci klasifikátoru se čtyřmi běžně používanými typy
kernel funkcí, tedy lineární, polynomiální, RBF a tangenciální. Dále je popsán
moderní a velmi rychlý algoritmus trénování SVM klasifikátorů - SMO.
Dalším úkolem je porovnání výsledků a časů běhu s veřejně dostupnými implementacemi
SVM na GPU a dále ještě s balíkem LIBSVM.
Důležitou součástí této práce je optimalizace implementovaného klasifikátoru
v programovacím jazyce CUDA C.
Anotace v angličtině
The goal of this work is an implementation of training and prediction of SVM
classifiers on GPU. There is a brief introduction to the CUDA C programming
language, which is also used for the implementation of a classifier with four
commonly used types of kernel functions, linear, polynomial, RBF and
tangential. Next goal is description of modern and very fast algorithm for
training of SVM classifiers - SMO. Another challenge is the comparison of
run times and the classification results with freely available libraries for
SVM classifiers using GPU and LIBSVM toolbox. An integral part of this
work is to optimize the classifier implemented in the CUDA C programming
language
SVM training, SVM classification, linear kernel function,
polynomial kernel function, Gaussian RBF, hyperbolic tangent function,
NVIDIA CUDA C, parallel programming on GPU
Zásady pro vypracování
Prostudujte problematiku paralelních implementací algoritmů pomocí technologií CUDA, OpenCL.
Implementujte metody SVM na grafických kartách.
Vytvořené implementace zhodnoťe a porovnejte, porovnejte rovněž výkon na různém hardware.
Vytvořené implementace porovnejte rovněž s dostupnými existujícími implementacemi.
Zásady pro vypracování
Prostudujte problematiku paralelních implementací algoritmů pomocí technologií CUDA, OpenCL.
Implementujte metody SVM na grafických kartách.
Vytvořené implementace zhodnoťe a porovnejte, porovnejte rovněž výkon na různém hardware.
Vytvořené implementace porovnejte rovněž s dostupnými existujícími implementacemi.
Seznam doporučené literatury
CUDA C Programming Guide, NVIDIA\\
CUDA C Best Practices Guide, NVIDIA\\
AMD Accelerated Parallel Processing, OpenCL Programming\\
Guide, AMD Company\\
Další materiály dodá vedoucí práce
Seznam doporučené literatury
CUDA C Programming Guide, NVIDIA\\
CUDA C Best Practices Guide, NVIDIA\\
AMD Accelerated Parallel Processing, OpenCL Programming\\
Guide, AMD Company\\
Další materiály dodá vedoucí práce