Titulo Estágio
Implementation of Support Vector Machines on the GPU
Área Tecnológica
Reconhecimento de Padrões
Local do Estágio
DEI - Departamento de Engenharia Informática
Enquadramento
Recently, the Graphics Processing Unit (GPU) emerged as a major player in the trend shifting of the computing industry from single core to multi-core architectures. Due to its inherent parallel architecture, GPUs can deliver remarkable performance gains for computationally intensive applications. As a result there is an on-growing interest, in particular in the scientific community, on using the GPU to accelerate non-graphic applications with high-computational power requirements.
In the machine learning field, the algorithms used (e.g. support vector machines, neural networks) are often computational demanding (especially when large datasets are involved). Thus, parallel implementations of machine learning algorithms become fundamental for researchers to build real-world applications. In this context, an open source Graphic Processing Unit Machine Learning Library (GPUMLib) is currently being built (using C++ and CUDA). This library aims to provide machine learning researchers and practitioners with a high performance library by taking advantage of the GPU enormous computational power.
Among the machine learning algorithms, the Support Vector Machine (SVM) algorithm is one the most widely used algorithms. This is due to its impressive generalization performance on a wide range of problems and domains. However, the computationally expensive nature of its training process is a major bottleneck to the construction of SVM-based solutions.
Objetivo
The goal of this thesis is to design, develop
and implement a component to integrate/support GPUMLib. More specifically,
the component to be developed includes the implementation, test and
experimentation of Support Vector Machines. Tests will be held in several
benchmarks as well as in real-world problems, in order to compare the
performances both in the GPU implementation and in a standalone CPU version as
well as to assess the speedups obtained.
Plano de Trabalhos - Semestre 1
·
Review of the state-of-the-art multicore technologies
·
CUDA,
·
Preliminary
·
Analysis, Specification and Implementation
·
Tests and Experimentation
·
Thesis Report
Review
of the State-of-the-Art (months 1-2)
In this phase, the student should make a review
of the state-of-the-art as well as start creating a standalone CPU version of
the SVM algorithm.
Introduction
to CUDA (months 3-4)
In this phase, the student will become familiar
with the CUDA technology. The student should also start to create the GPU
parallel version of the SVM algorithm.
Functionalities
to be included in the SVM Component of GPUMLib (month 4)
As a result of the previous phase and prior to
Thesis Proposal writing, functionalities to be included in the SVM component
should be defined.
Write
Thesis Report (month 5).
Plano de Trabalhos - Semestre 2
SVM
Component Implementation of GPUMLib (months 6-9).
The CPU and GPU implementations of the SVM
algorithm should be completed in order to proceed with the tests.
SVM
Component Tests and Experimentation (month 9).
Thesis Final Report (month 10)
Condições
The
work will be in the Departament of Informatics Engineering, in the Adaptive Computation
Group, Laboratory of Neural Networks (LARN) of the Center for Informatics and
Systems of the University of Coimbra. A desktop with a graphic card GTX 295,
with 2 GPUs (240 cores) and 4GB RAM is available in LARN for performing the
work and experiments.
Observações
Preference
will be given to students with a good assessment in the courses related with
this work (e.g. Computação Adaptativa, Sistemas Distribuídos, Computação de
Alto Desempenho e Integração de Sistemas). Experience in C or C++ is required.
Orientador
Profª Doutora Bernardete Ribeiro
bribeiro@dei.uc.pt 📩