Implementación en CUDA dun método para realizar a operación de convolución en lotes
![Thumbnail](/dspace/bitstream/handle/2183/26686/S.Aguado_Couselo_2020_Implementaci%c3%b3n_en_CUDA_dun_m%c3%a9todo.pdf.jpg?sequence=5&isAllowed=y)
Use this link to cite
http://hdl.handle.net/2183/26686
Except where otherwise noted, this item's license is described as Atribución-NoComercial-SinDerivadas 3.0 España
Collections
Metadata
Show full item recordTitle
Implementación en CUDA dun método para realizar a operación de convolución en lotesAuthor(s)
Directors
Andrade Canosa, DiegoDate
2020-09Center/Dept./Entity
Enxeñaría informática, Grao enDescription
Traballo fin de grao (UDC.FIC). Enxeñaría informática. Curso 2019/2020Abstract
[Resumo]
Nos últimos anos, as plataformas heteroxéneas, tales como as tarxetas gráficas (GPU), tiveron
un gran auxe na resolución de problemas en diversos ámbitos. A realización de operacións alxébricas
por lotes xa foi explorada con éxito no pasado, como forma de mellorar o rendemento
desta clase de operacións. Non obstante, existen diversas formas de realizalo. Algunhas intentan
buscar un emprazamento óptimo das estruturas de datos en memoria, de forma que
favoreza as características da plataforma na que o código será executado. Outras tratan de realizar
un reparto do traballo que aumente a reutilización dos datos procesados por un mesmo
fío. O proxecto explora todas estas estratexias, no marco dunha implementación que emprega
CUDA para executar a operación de convolución por lotes. Esta operación alxébrica, ademais,
é a que ocupa un maior tempo de execución no adestramento de redes de aprendizaxe profunda.
Polo tanto, analizaremos o rendemento da implementación tanto de forma illada coma
no contexto das redes de aprendizaxe profunda. [Abstract]
In recent years, heterogeneous platforms (e.g., Graphical Processing Units), had a great boom
solving problems in different fields. Batch algebraic operations have been successfully explored
in the past as a way to improve performance. However, there are several ways to
approach it. Some of them try to find an optimal location of the data structures in memory, in
a way that favors the characteristics of the platform where the code is going to be executed.
Others try to make a division of work that increases the reuse of data processed by the same
thread. This project explores all of these strategies, as part of an implementation using CUDA
to run the batched convolution operation. This algebraic operation is also the longest running
operation in deep learning network training. Therefore, we will analyze implementation
performance both in isolation and in the context of deep learning networks.
Keywords
GPGPU (Computación de Propósito Xeral en Unidades de Procesamento Gráfico)
NVIDIA CUDA®
Convolución por lotes
GPGPU (General-Purpose Computing on Graphics Processing Units)
Batched Convolution
NVIDIA CUDA®
Convolución por lotes
GPGPU (General-Purpose Computing on Graphics Processing Units)
Batched Convolution
Rights
Atribución-NoComercial-SinDerivadas 3.0 España