- -

Auto-generación de núcleos computacionales para redes neuronales sobre GPUs

RiuNet: Repositorio Institucional de la Universidad Politécnica de Valencia

Compartir/Enviar a

Citas

Estadísticas

  • Estadisticas de Uso

Auto-generación de núcleos computacionales para redes neuronales sobre GPUs

Mostrar el registro sencillo del ítem

Ficheros en el ítem

dc.contributor.advisor Alonso Jordá, Pedro es_ES
dc.contributor.advisor Castelló Gimeno, Adrián es_ES
dc.contributor.author Del Campo Calvo, Francisco Javier es_ES
dc.date.accessioned 2023-09-25T09:05:50Z
dc.date.available 2023-09-25T09:05:50Z
dc.date.created 2023-07-25
dc.date.issued 2023-09-25 es_ES
dc.identifier.uri http://hdl.handle.net/10251/197040
dc.description.abstract [ES] La adopción de las redes neuronales en prácticamente todos los ámbitos científicos está propiciando su uso en una amplia variedad de dispositivos. Estos dispositivos pueden ser de muy diversa naturaleza: desde grandes y complejos servidores de cómputo, hasta procesadores de bajo consumo como los integrados en los teléfonos móviles. Sin embargo, ya sean de un tipo u otro, casi todos incluyen un acelerador gráfico o GPU que puede ser utilizado para cómputo de propósito general. Generar núcleos computacionales optimizados para cada acelerador de forma manual requiere de un enorme esfuerzo por parte de los desarrolladores, de hecho, en la práctica, esto se lleva a cabo solamente para algunos modelos. El objetivo del presente trabajo es automatizar la generación de código optimizado para cualquier tipo de GPU mediante una herramienta conocida como Apache TVM. Esta herramienta permite especificar la operación a optimizar a un alto nivel y, a través de una serie de modificaciones intermedias por parte del framework, generar el código optimizado. En este trabajo se desarrolla código para optimizar la operación de multiplicación de matrices, la cual es ampliamente utilizada en la mayoría de los campos científicos, incluyendo las redes neuronales. Una vez generado el código con TVM, se lleva a cabo un estudio de prestaciones, comparando su rendimiento con el de la librería de altas prestaciones NVIDIA cuBLAS y el de otra utilidad de TVM llamada Auto-Tuning (AutoScheduler), que permite automatizar el proceso de desarrollo a partir de una descripción del cómputo. Los resultados muestran que el código desarrollado obtiene un rendimiento similar al obtenido por cuBLAS, y supera el generado por AutoScheduler en multiplicaciones de matrices de dimensiones grandes. Al aplicar esta comparativa a un caso de estudio real, la red neuronal ResNet50-v1.5, donde el escenario de aplicación cambia a matrices muy rectangulares, ha sido posible vencer a cuBLAS en algunas de las capas que corresponden a los productos de matrices más rectangulares y al AutoScheduler en la mayoría de las capas. es_ES
dc.description.abstract [EN] The adoption of neural networks in virtually all scientific fields is leading to their use in a wide variety of devices. These devices can range from large, complex computational servers to low-power processors such as those embedded in mobile phones. However, whether they are of one type or another, almost all include a graphics accelerator or GPU that can be used for general-purpose computing. Generating optimized computational cores for each accelerator manually requires enormous effort on the part of developers; in fact, in practice, this is only done for some models. The aim of the present project is to automate the generation of optimized code for any type of GPU using a tool known as Apache TVM. This tool allows to specify the operation to be optimized at a high level and, through a series of intermediate modifications by the framework, to generate the optimized code. In this project, code is developed to optimize the matrix multiplication operation, which is widely used in most scientific fields, including neural networks. Once the TVM code is generated, a performance study is carried out, comparing its performance with that of the NVIDIA cuBLAS high-performance library and that of another TVM utility called Auto-Tuning (AutoScheduler), which allows automating the development process from a description of the computation. The results show that the developed code obtains a performance similar to that obtained by cuBLAS, and outperforms that generated by AutoScheduler in multiplications of high-dimensional matrices. By applying this comparison to a real case study, the ResNet50-v1.5 neural network, where the application scenario changes to very rectangular matrices, it has been possible to beat cuBLAS in some of the layers corresponding to the products of more rectangular matrices and AutoScheduler in most of the layers. es_ES
dc.format.extent 106 es_ES
dc.language Español es_ES
dc.publisher Universitat Politècnica de València es_ES
dc.rights Reserva de todos los derechos es_ES
dc.subject Multiplicación de matrices es_ES
dc.subject Apache TVM es_ES
dc.subject GPU es_ES
dc.subject Generación automática es_ES
dc.subject Redes neuronales es_ES
dc.subject Convolución es_ES
dc.subject Matrix multiplication es_ES
dc.subject Automatic generation es_ES
dc.subject Neural networks es_ES
dc.subject Convolution es_ES
dc.subject.classification CIENCIAS DE LA COMPUTACION E INTELIGENCIA ARTIFICIAL es_ES
dc.subject.other Máster Universitario en Computación en la Nube y de Altas Prestaciones / Cloud and High-Performance Computing-Màster Universitari en Computació en el Núvol i d'Altes Prestacions / Cloud and High-Performance Computing es_ES
dc.title Auto-generación de núcleos computacionales para redes neuronales sobre GPUs es_ES
dc.title.alternative Auto-generation of computational kernels for neural networks on GPUs es_ES
dc.title.alternative Acte-generació de nuclis computacionals per a xarxes neuronals sobre GPUs es_ES
dc.type Tesis de máster es_ES
dc.rights.accessRights Abierto es_ES
dc.contributor.affiliation Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación - Departament de Sistemes Informàtics i Computació es_ES
dc.description.bibliographicCitation Del Campo Calvo, FJ. (2023). Auto-generación de núcleos computacionales para redes neuronales sobre GPUs. Universitat Politècnica de València. http://hdl.handle.net/10251/197040 es_ES
dc.description.accrualMethod TFGM es_ES
dc.relation.pasarela TFGM\148328 es_ES


Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del ítem