Spelling suggestions: "subject:"cada"" "subject:"cuja""
111 |
Otimização de pathfinding em GPUSILVA 30 August 2013 (has links)
Submitted by Fabio Sobreira Campos da Costa (fabio.sobreira@ufpe.br) on 2017-02-13T13:05:50Z
No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Dissertação-Mestrado-Adônis_Tavares-digital.pdf: 1967837 bytes, checksum: 2d0c23ab20f389f08ae9964b086b5f9f (MD5) / Made available in DSpace on 2017-02-13T13:05:50Z (GMT). No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Dissertação-Mestrado-Adônis_Tavares-digital.pdf: 1967837 bytes, checksum: 2d0c23ab20f389f08ae9964b086b5f9f (MD5)
Previous issue date: 2013-08-30 / Nos últimos anos, as unidades de processamento gráfico (GPU) têm
apresentado um avanço significativo dos recursos computacionais disponíveis para
o uso de aplicações não-gráficas. A capacidade de resolução de problemas
envolvendo computação paralela, onde o mesmo programa é executado em
diversos elementos de dados diferentes ao mesmo tempo, bem como o
desenvolvimento de novas arquiteturas que suportem esse novo paradigma, como
CUDA (Computed Unified Device Architecture), tem servido de motivação para a
utilização da GPU em aplicações de propósito geral, especialmente em jogos. Em
contrapartida, a performance das CPUs, mesmo com a presença de múltiplos
núcleos (multi-core), tem diminuído, limitando o avanço tecnológico de diversas
técnicas desenvolvidas na área de jogos e favorecendo a transição e o
desenvolvimento das mesmas para a GPU.
Alguns algoritmos de Inteligência Artificial que podem ser decompostos e
demonstram certo nível de paralelismo, como o pathfinding, utilizado na navegação
de agentes durante o jogo, têm sido desenvolvidos em GPU e demonstrado um
desempenho melhor quando comparado à CPU. De modo semelhante, este
trabalho tem como proposta a investigação e o desenvolvimento de possíveis
otimizações ao algoritmo de pathfinding em GPU, por meio de CUDA, com ênfase
em sua utilização na área de jogos, escalando a quantidade de agentes e nós de
um mapa, possibilitando um comparativo com seu desempenho apresentado na
CPU. / In recent years, graphics processing units (GPUs) have shown a significant
advance of computational resources available for the use of non-graphical
applications. The ability to solve problems involving parallel computing as well as
the development of new architectures that supports this new paradigm, such as
CUDA, has encouraged the use of GPU for general purpose applications,
especially in games. Some parallel tasks which were CPU based are being ported
over to the GPU due to their superior performance. One of these tasks is the
pathfinding of an agent over a game map, which has already achieved a better
performance on GPU, but is still limited. This work describes some optimizations to
a GPU pathfinding implementation, addressing a larger work set (agents and
nodes) with good performance compared to a CPU implementation.
|
112 |
Performance prediction of application executed on GPUs using a simple analytical model and machine learning techniques / Predição de desempenho de aplicações executadas em GPUs usando um modelo analítico simples e técnicas de aprendizado de máquinaMarcos Tulio Amarís González 25 June 2018 (has links)
The parallel and distributed platforms of High Performance Computing available today have became more and more heterogeneous (CPUs, GPUs, FPGAs, etc). Graphics Processing Units (GPU) are specialized co-processor to accelerate and improve the performance of parallel vector operations. GPUs have a high degree of parallelism and can execute thousands or millions of threads concurrently and hide the latency of the scheduler. GPUs have a deep hierarchical memory of different types as well as different configurations of these memories. Performance prediction of applications executed on these devices is a great challenge and is essential for the efficient use of resources in machines with these co-processors. There are different approaches for these predictions, such as analytical modeling and machine learning techniques. In this thesis, we present an analysis and characterization of the performance of applications executed on GPUs. We propose a simple and intuitive BSP-based model for predicting the CUDA application execution times on different GPUs. The model is based on the number of computations and memory accesses of the GPU, with additional information on cache usage obtained from profiling. We also compare three different Machine Learning (ML) approaches: Linear Regression, Support Vector Machines and Random Forests with BSP-based analytical model. This comparison is made in two contexts, first, data input or features for ML techniques were the same than analytical model, and, second, using a process of feature extraction, using correlation analysis and hierarchical clustering. We show that GPU applications that scale regularly can be predicted with simple analytical models, and an adjusting parameter. This parameter can be used to predict these applications in other GPUs. We also demonstrate that ML approaches provide reasonable predictions for different cases and ML techniques required no detailed knowledge of application code, hardware characteristics or explicit modeling. Consequently, whenever a large data set with information about similar applications are available or it can be created, ML techniques can be useful for deploying automated on-line performance prediction for scheduling applications on heterogeneous architectures with GPUs. / As plataformas paralelas e distribuídas de computação de alto desempenho disponíveis hoje se tornaram mais e mais heterogêneas (CPUs, GPUs, FPGAs, etc). As Unidades de processamento gráfico são co-processadores especializados para acelerar operações vetoriais em paralelo. As GPUs têm um alto grau de paralelismo e conseguem executar milhares ou milhões de threads concorrentemente e ocultar a latência do escalonador. Elas têm uma profunda hierarquia de memória de diferentes tipos e também uma profunda configuração da memória hierárquica. A predição de desempenho de aplicações executadas nesses dispositivos é um grande desafio e é essencial para o uso eficiente dos recursos computacionais de máquinas com esses co-processadores. Existem diferentes abordagens para fazer essa predição, como técnicas de modelagem analítica e aprendizado de máquina. Nesta tese, nós apresentamos uma análise e caracterização do desempenho de aplicações executadas em Unidades de Processamento Gráfico de propósito geral. Nós propomos um modelo simples e intuitivo fundamentado no modelo BSP para predizer a execução de funções kernels de CUDA sobre diferentes GPUs. O modelo está baseado no número de computações e acessos à memória da GPU, com informação adicional do uso das memórias cachês obtidas do processo de profiling. Nós também comparamos três diferentes enfoques de aprendizado de máquina (ML): Regressão Linear, Máquinas de Vetores de Suporte e Florestas Aleatórias com o nosso modelo analítico proposto. Esta comparação é feita em dois diferentes contextos, primeiro, dados de entrada ou features para as técnicas de aprendizado de máquinas eram as mesmas que no modelo analítico, e, segundo, usando um processo de extração de features, usando análise de correlação e clustering hierarquizado. Nós mostramos que aplicações executadas em GPUs que escalam regularmente podem ser preditas com modelos analíticos simples e um parâmetro de ajuste. Esse parâmetro pode ser usado para predizer essas aplicações em outras GPUs. Nós também demonstramos que abordagens de ML proveem predições aceitáveis para diferentes casos e essas abordagens não exigem um conhecimento detalhado do código da aplicação, características de hardware ou modelagens explícita. Consequentemente, sempre e quando um banco de dados com informação de \\textit esteja disponível ou possa ser gerado, técnicas de ML podem ser úteis para aplicar uma predição automatizada de desempenho para escalonadores de aplicações em arquiteturas heterogêneas contendo GPUs.
|
113 |
Eficácia e comportamento do tempo de imunidade em um modelo de descontaminação de reticulados por autômatos celularesNogueira, Marcelo Arbori 12 December 2013 (has links)
Made available in DSpace on 2016-03-15T19:37:48Z (GMT). No. of bitstreams: 1
Marcelo Arbori Nogueira.pdf: 904606 bytes, checksum: 186b7d2c9f1c91d2dc019d673ecdf983 (MD5)
Previous issue date: 2013-12-12 / Cellular automata are models where, out of the application of a local rule to the cells of their regular lattice, global behaviour emerges. Depending on the rule applied, the emergent behaviour may be interpreted as a computation, or used to simulate
various types of phenomena, such as physical, biological or social. Cellular automata can be used to simulate population growth, spread of disease, tumor growth, decontamination, among other applications. This paper seeks to expand the theoretical limits on the process of decontamination of a two-dimensional lattice using cellular automata, as established by Daadaa (2012). Here we relax premises assumed therein and seek a better understanding of the characteristics of the rules involved as well as of the behaviour of the immunity time of the decontaminated cells. In order to do so, but since the initial conditions correspond to a very large space, massively parallel programming was employed using GPU, which allowed to evaluate a large number of possibilities. It was possible to identify two decontamination rules linked to each type of neighborhood studied (von Neumann and Moore), that generalise previous rules
defined in the work we relied upon. In experiments made with the new rules, their superior efficacy became apparent for random initial conditions; it was also possible to assertain their effectiveness for uniform distribution of states. The general rules allow we developed allowed for a better understanding of the
immunity time required to decontaminate a lattice. It was observed that the ratio between the immunity time and the lattice size is not linear, as suggested by Daadaa. / Autômatos celulares são modelos onde, a partir da aplicação de regras locais às células de seu reticulado, emerge um comportamento global. Dependendo da regra aplicada o comportamento emergente pode ser entendido como uma computação, ou utilizado para simular fenômenos físicos, biológicos, sociais, etc. Pode-se usar autômatos celulares para simular crescimento populacional, propagação de doenças,
crescimento de tumores, descontaminação, entre outras aplicações. O presente trabalho procura expandir limites teóricos a respeito do processo de descontaminação de reticulados bidimensionais por autômatos celulares, apresentado por Daadaa (2012). Flexibiliza-se aqui premissas lá assumidas e procura-se uma melhor compreensão sobre as características das regras envolvidas bem como do comportamento do tempo de imunidade de células recuperadas. Para tanto, uma vez que as possíveis condições iniciais configuram um espaço muito grande, foi empregada programação massivamente paralela utilizando GPU,
permitindo avaliar um grande número de possibilidades. Foi possível identificar duas regras de descontaminação, específicas para cada tipo de vizinhança estudada (vizinhanças de von Neumann e de Moore), que generalizam as regras anteriormente definidas no mesmo contexto do trabalho aqui tratado. Nos experimentos realizados, foi possível comparar a eficácia das regras propostas com as que lhes deram origem, e ficou evidente a eficácia superior das novas regras para condições iniciais aleatória; também foi possível constatar a eficácia das regras para distribuições uniformes de estados. As regras gerais desenvolvidas permitiram melhor compreensão do tempo de
imunidade necessário para descontaminar um reticulado. Foi possível observar que a relação do tempo de imunidade com o tamanho do reticulado não é linear como sugerido no trabalho de Daadaa.
|
114 |
Hydraulic Erosion Simulation on the GPU for 3D terrains / Vattenerosions simulering på GPU:n för 3D terrängerIsheden, Sebastian January 2022 (has links)
Erosion is the action of various natural processes, such as water flow, wind and gravity, that displaces material from one area to another. Creating physically-based models of these complex phenomena has been a major challenge in creating realistic terrain in video games in a fast way, without having a 3D artist model the terrain by hand. There has also been an increasing interest in representing terrain in a more complex way using 3D data, to support more interesting terrains which can contain overhangs, arches and caves. With this new terrain representation there is also a need for new models for terrain generation and modification, to handle the difference in data representation. Combining the work of previous hydraulic erosion models (erosion caused by running water), this thesis proposes a new approach to hydraulic erosion on 3D-SDF data. An efficient shallow-water model combined with making an approximation of the 3D data into multiple “layers” are the main components of this model. The number of layers relates to how the 3D model can represent 3D features such as overhangs and arches. This also enables the model to be mapped to the GPU, for efficient simulation speeds. A performance comparison was carried out on the 3D erosion model, both comparing the difference on the CPU and GPU, as well as the performance compared to it’s 2D counterpart. The terrains were rendered using OpenGL, and the simulation on the GPU was implemented using CUDA. The 3D model took about 2.8 times longer than it’s 2D counterpart for a terrain of size 1024x1024 with 2 layers, with degrading results as the layers needed to represent the 3D terrain increase. The simulation was around 10-15 times faster on the GPU compared to the single core CPU version, also with degrading results as the amount of layers increase. This thesis thus provides a simple and efficient hydraulic erosion model that can be used on 3D-SDF data, which supports overhangs and arches. / Erosion är effekten av ett antal olika naturliga processer, så som vatten flöde av regn, vind och gravitation, som förflyttar material från en plats till en annan. Att skapa verklighets baserade modeller av dessa komplexa fenomen har varit en stor utmaning för att skapa verklighetstrogna terränger för datorspel på ett snabbt vis, utan att behöva en 3D artist som modellerar terränger för hand. Det finns även ett ökat intresse för att representera terräng på mer komplexa sätt med användningen av 3D data, för att stödja mer intressanta terrängen som kan innehålla överhäng, valv och grottor. Med ett nytt sätt att representera terräng behövs det även nya modeller för att generera och modifiera terräng, som tar hänsyn till skillnaden i hur data representeras. Genom att kombinera arbetet från tidigare vatten erosions modeller föreslår denna tes ett nytt sätt för vatten erosion på 3D-SDF data. En effektiv flödesmodell kombinerat med en approximation av 3D data i form av flera lager är huvudkomponenterna av denna modell. Antalet lager relaterar till vilka sorts 3D egenskaper som kan representeras, så som överhäng och valv. Lagrena gör även att modellen kan exekveras på GPU:n, för effektivare simulations hastigheter. En prestanda jämförelse genomföred på 3D erosions modellen, där både skillnaden mellan GPU och CPU jämfördes, samt prestandan jämfört med 2D motsvarigheten. Terrängerna renderades med OpenGL, och simuleringen på GPU:n implementerades med hjälp av CUDA. 3D modellen tog omkring 2.8 gånger så långt tid som 2D motsvarigheten för en terräng med storlek 1024 x 1024 med 2 lager, med degraderande resultat när antalet lager ökades. Simuleringen var omkring 10- 15 gånger så snabb på GPU:n jämfört med en enkärnig CPU version, också med degraderande resultat när antalet lager ökas. Denna tes framför således en simpel och effektiv vattenerosions modell som kan användas på 3D-SDF data, vilket stödjer överhäng, valv och grottor.
|
115 |
Cumulus - translating CUDA to sequential C++ : Simplifying the process of debugging CUDA programs / Cumulus - översätter CUDA till sekventiell C++ : En studie i hur felsökande av CUDA-program kan förenklasBlomkvist Karlsson, Vera January 2021 (has links)
Due to their highly parallel architecture, Graphics Processing Units (GPUs) offer increased performance for programs benefiting from parallel execution. A range of technologies exist which allow GPUs to be used for general-purpose programming, NVIDIA’s CUDA platform is one example. CUDA makes it possible to combine source code written for GPUs and Central Processing Units (CPUs) in the same program. Those sections that benefit from parallel execution can be written as CUDA kernels and will be executed on the GPU. With CUDA it is common to have tens, or even hundreds, of thousands of threads running in parallel. While the high level of parallelism can offer significant performance increases for executed programs, it can also make CUDA programs hard to debug. Although debuggers for CUDA exist, they can not be used in the same way as standard debuggers, and they do not reduce the difficulties of reasoning about parallel execution. As a result, developers may feel compelled to fall back to inefficient debugging methods, such as relying on print statements. This project examines two possible approaches for creating a tool which simplifies the process of debugging CUDA programs, by transforming a parallel CUDA program to a sequential program in another high level language: one method centered around the Clang Abstract Syntax Tree (AST), and the other method centered around LLVM Intermediate Representation (IR) code. The method using Clang was found to be the most suitable for the purpose of translating CUDA, as it enables modifying only select parts, such as kernels, of the input program. Thus, the tool Cumulus was developed as a Clang plugin. Cumulus translates parallel CUDA code into sequential C++ code, allowing developers to use any method available for C++ debugging to debug their CUDA program. Cumulus is indicated to be a potential aid in debugging CUDA programs, by providing developers with increased flexibility. / Tack vare sin högst parallella arkitektur kan grafikprocessorer erbjuda ökad prestanda för program som gagnas av parallel exekvering. En mängd teknologier finns, vilka möjliggör att grafikprocessorer kan användas inte bara till grafikberäkningar, utan även till allmäna beräkningar. NVIDIA’s plattform CUDA är en sådan teknik. CUDA gör det möjligt att i samma program kombinera källkod skriven för att exekveras på en centralprocessor, med källkod skriven för att exekveras på en grafikprocessor. Kodsektioner i ett program som gagnas av att köras parallellt kan skrivas som en CUDA kernel, vilket är en funktion som exekveras på grafikprocessorn. Med CUDA är det är inte ovanligt att ha tiotusentals, eller till och med hundratusentals, trådar som körs parallellt. Den mycket höga nivån av parallellism kan erbjuda markant ökad prestanda för exekverade program, men kan samtidigt göra det svårt att felsöka CUDA-program. Särskilda avlusare för CUDA existerar, men de kan inte användas på samma sätt som standardavlusare, och de minskar inte svårigheterna med att resonera kring parallella beräkningar. På grund av detta kan utvecklare känna sig nödgade att använda ineffektiva felsökningsmetoder, såsom att förlita sig på printsatser. Det här projektet undersöker två möjliga metoder för att skapa ett verktyg som förenklar felsökandet i CUDAprogram, genom att översätta ett parallellt CUDA-program till ett sekventiellt program i ett klassiskt högnivå-programmeringsspråk. Den ena möjliga metoden är centrerad kring Clangs AST, den andra möjliga metoden är centrerad kring LLVM IR-kod. Metoden som använder Clang fanns vara den mest lämpliga metoden för syftet att översätta CUDA-kod, eftersom den möjliggör översättning av endast utvalda delar av originalprogrammet, exempelvis kernels. Således utvecklades verktyget Cumulus som en Clangplugin. Cumulus översätter parallell CUDA-kod till serialiserad C++-kod, vilket låter utvecklare använda alla de metoder som finns tillgängliga för att felsöka C++-program, för att felsöka sina CUDA-program. Evalueringen av Cumulus indikerar att verktyget kan fungera som en möjlig hjälp vid felsökande av CUDA-program, genom att erbjuda utvecklare ökad flexibilitet.
|
116 |
Applications of Riesz Transforms and Monogenic Wavelet Frames in Imaging and Image ProcessingReinhardt, Martin 15 March 2019 (has links)
Die Dissertation mit dem Titel 'Applications of Riesz Transforms and Monogenic Wavelet Frames in Imaging and Image Processing' beschäftigt sich mit modernen Verfahren der Signalverarbeitung in der Bildgebung sowie in der Bildverarbeitung. Hierzu werden Riesz-Transformationen und translationsinvariante Wavelet Frames zu monogenen Frames vereint und angewandt. Bekannte Techniken wie der Strukturtensor und der Energieoperator werden mit Hilfe der neuen Verfahren verbessert und für die Orientierungsbestimmung in Bildern genutzt. Eine weitere Anwendung stellt der Algorithmus 'Equalization of Brightness' dar. Er wird mit einigen Anpassungen verwendet, um eine Implementierung der monogenen Wavelet Frames mit Hilfe des NVIDIA CUDA Frameworks vorzustellen. Bei einem empirischen Vergleich der vorgestellten Techniken mit den ursprünglichen Verfahren konnten präzisere Ergebnisse mit niedrigerer Rauschanfälligkeit nachgewiesen werden. Ein weiterer Punkt der Arbeit beschäftigt sich mit den Möglichkeiten, monogene Wavelet Frames als Filter in optischen Systemen einzusetzen.:Preface
Introduction
1. Time Frequency Analysis for Signal Processing
2. The Riesz Transform and Monogenic Wavelet Frames
3. Applications of Monogenic Wavelet Frames
Conclusion
A. Mathematical Appendix
B. Source Code Listings
Bibliography
List of Figures
|
117 |
Precificação de opções exóticas utilizando CUDA / Exotic options pricing using CUDACalderaro, Felipe Boteon 17 October 2017 (has links)
No mercado financeiro, a precificação de contratos complexos muitas vezes apoia-se em técnicas de simulação numérica. Estes métodos de precificação geralmente apresentam baixo desempenho devido ao grande custo computacional envolvido, o que dificulta a análise e a tomada de decisão por parte do trader. O objetivo deste trabalho é apresentar uma ferramenta de alto desempenho para a precificação de instrumentos financeiros baseados em simulações numéricas. A proposta é construir uma calculadora eficiente para a precificação de opções multivariadas baseada no método de Monte Carlo, utilizando a plataforma CUDA de programação paralela. Serão apresentados os conceitos matemáticos que embasam a precificação risco-neutra, tanto no contexto univariado quanto no multivariado. Após isso entraremos em detalhes sobre a implementação da simulação Monte Carlo e a arquitetura envolvida na plataforma CUDA. No final, apresentaremos os resultados obtidos comparando o tempo de execução dos algoritmos. / In the financial market, the pricing of complex contracts often relies on numerical simulation techniques. These pricing methods generally present poor performance due to the large computational cost involved, which makes it difficult for the trader to analyze and make decisions. The objective of this work is to present a high performance tool for the pricing of financial instruments based on numerical simulations. The proposal is to present an efficient calculator for the pricing of multivariate options based on the Monte Carlo method, using the parallel programming CUDA platform. The mathematical concepts underlying risk-neutral pricing, both in the univariate and in the multivariate context, will be presented. After this we will detail the implementation of the Monte Carlo simulation and the architecture involved in the CUDA platform. At the end, we will present the results obtained comparing the execution time of the algorithms.
|
118 |
Reconstrução de imagens por tomografia por impedância elétrica utilizando recozimento simulado massivamente paralelizado. / Image reconstruction through electrical impedance tomography using massively parallelized simulated annealing.Tavares, Renato Seiji 06 May 2016 (has links)
A tomografia por impedância elétrica é uma modalidade de imageamento médico recente, com diversas vantagens sobre as demais modalidades já consolidadas. O recozimento simulado é um algoritmo que apresentada qualidade de solução, mesmo com a utilização de uma regularização simples e sem informação a priori. Entretanto, existe a necessidade de reduzir o tempo de processamento. Este trabalho avança nessa direção, com a apresentação de um método de reconstrução que utiliza o recozimento simulado e paralelização massiva em GPU. A paralelização das operações matriciais em GPU é explicada, com uma estratégia de agendamento de threads que permite a paralelização efetiva de algoritmos, até então, considerados não paralelizáveis. Técnicas para sua aceleração são discutidas, como a heurística de fora para dentro. É proposta uma nova representação de matrizes esparsas voltada para as características da arquitetura CUDA, visando um melhor acesso à memória global do dispositivo e melhor utilização das threads. Esta nova representação de matriz mostrou-se vantajosa em relação aos formatos mais utilizados. Em seguida, a paralelização massiva do problema inverso da TIE, utilizando recozimento simulado, é estudada, com uma proposta de abordagem híbrida com paralelização tanto em CPU quanto GPU. Os resultados obtidos para a paralelização do problema inverso são superiores aos do problema direto. A GPU satura em aproximadamente 7.000 nós, a partir do qual o ganho em desempenho é de aproximadamente 5 vezes. A utilização de GPUs é viável para a reconstrução de imagens de tomografia por impedância elétrica. / Electrical impedance tomography is a new medical imaging modality with remarkable advatanges over other stablished modalities. Simulated annealing is an algorithm that renders quality solutions despite the use of simple regularization methods and the absence of a priori information. However, it remains the need to reduce its processing time. This work takes a step in this direction, presenting a method for the reconstruction of EIT images using simulated annealing and GPU parallelization. The parallelization of matrix operations in GPU is explained, with a thread scheduling strategy that allows the effective parallelization of not-yet effectively parallelized algorithms. There are strategies for improving its performance, such as the presented outside-in heuristic. It is proposed a new sparse matrix representation focused on the CUDA architecture characteristics, with improved global memory access patterns and thread efficiency. This new matrix representation showed several advantages over the most common formats. The massive parallelization of the TIE\'s inverse problem using simulated annealing is studied, with a proposed hybrid approach that uses parallelization in both CPU and GPU. Results showed that the performance gain for the inverse problem is higher than the one obtained for the forward problem. The GPU device saturates with meshes of size of approximately 7,000 nodes, with a performance gain around 5 times faster than serial implementations. GPU parallelization may be used for the reconstruction of electrical impedance tomography images.
|
119 |
Resolução de um problema térmico inverso utilizando processamento paralelo em arquiteturas de memória compartilhada / Resolution of an inverse thermal problem using parallel processing on shared memory architecturesAnsoni, Jonas Laerte 03 September 2010 (has links)
A programação paralela tem sido freqüentemente adotada para o desenvolvimento de aplicações que demandam alto desempenho computacional. Com o advento das arquiteturas multi-cores e a existência de diversos níveis de paralelismo é importante definir estratégias de programação paralela que tirem proveito desse poder de processamento nessas arquiteturas. Neste contexto, este trabalho busca avaliar o desempenho da utilização das arquiteturas multi-cores, principalmente o oferecido pelas unidades de processamento gráfico (GPUs) e CPUs multi-cores na resolução de um problema térmico inverso. Algoritmos paralelos para a GPU e CPU foram desenvolvidos utilizando respectivamente as ferramentas de programação em arquiteturas de memória compartilhada NVIDIA CUDA (Compute Unified Device Architecture) e a API POSIX Threads. O algoritmo do método do gradiente conjugado pré-condicionado para resolução de sistemas lineares esparsos foi implementado totalmente no espaço da memória global da GPU em CUDA. O algoritmo desenvolvido foi avaliado em dois modelos de GPU, os quais se mostraram mais eficientes, apresentando um speedup de quatro vezes que a versão serial do algoritmo. A aplicação paralela em POSIX Threads foi avaliada em diferentes CPUs multi-cores com distintas microarquiteturas. Buscando um maior desempenho do código paralelizado foram utilizados flags de otimização as quais se mostraram muito eficientes na aplicação desenvolvida. Desta forma o código paralelizado com o auxílio das flags de otimização chegou a apresentar tempos de processamento cerca de doze vezes mais rápido que a versão serial no mesmo processador sem nenhum tipo de otimização. Assim tanto a abordagem utilizando a GPU como um co-processador genérico a CPU como a aplicação paralela empregando as CPUs multi-cores mostraram-se ferramentas eficientes para a resolução do problema térmico inverso. / Parallel programming has been frequently adopted for the development of applications that demand high-performance computing. With the advent of multi-cores architectures and the existence of several levels of parallelism are important to define programming strategies that take advantage of parallel processing power in these architectures. In this context, this study aims to evaluate the performance of architectures using multi-cores, mainly those offered by the graphics processing units (GPUs) and CPU multi-cores in the resolution of an inverse thermal problem. Parallel algorithms for the GPU and CPU were developed respectively, using the programming tools in shared memory architectures, NVIDIA CUDA (Compute Unified Device Architecture) and the POSIX Threads API. The algorithm of the preconditioned conjugate gradient method for solving sparse linear systems entirely within the global memory of the GPU was implemented by CUDA. It evaluated the two models of GPU, which proved more efficient by having a speedup was four times faster than the serial version of the algorithm. The parallel application in POSIX Threads was evaluated in different multi-core CPU with different microarchitectures. Optimization flags were used to achieve a higher performance of the parallelized code. As those were efficient in the developed application, the parallelized code presented processing times about twelve times faster than the serial version on the same processor without any optimization. Thus both the approach using GPU as a coprocessor to the CPU as a generic parallel application using the multi-core CPU proved to be more efficient tools for solving the inverse thermal problem.
|
120 |
[en] ANNCOM: ARTIFICIAL NEURAL NETWORK LIBRARY FOR HIGH PERFORMANCE COMPUTING USING GRAPHIC CARDS / [pt] ANNCOM: BIBLIOTECA DE REDES NEURAIS ARTIFICIAIS PARA ALTO DESEMPENHO UTILIZANDO PLACAS DE VÍDEODANIEL SALLES CHEVITARESE 24 May 2019 (has links)
[pt] As Redes Neurais Artificiais têm sido utilizadas com bastante sucesso em problemas de previsão, inferência e classificação de padrões. Por essa razão, já se encontram disponíveis diversas bibliotecas que facilitam a modelagem e o treinamento de redes, tais como o NNtool do Matlab ou o WEKA. Embora essas bibliotecas
sejam muito utilizadas, elas possuem limitações quanto à mobilidade, à flexibilidade e ao desempenho. Essa última limitação é devida, principalmente, ao treinamento que pode exigir muito tempo quando existe uma grande quantidade de dados com muitos atributos. O presente trabalho propõe o desenvolvimento de
uma biblioteca (ANNCOM) de fácil utilização, flexível, multiplataforma e que utiliza a arquitetura CUDA (Compute Unified Device Architecture) para reduzir os tempos de treinamento das redes. Essa arquitetura é uma forma de GPGPU (General-Purpose computing on Graphics Processing Units) e tem sido utilizada
como uma solução em computação paralela na área de alto desempenho, uma vez que a tecnologia utilizada nos processadores atuais está chegando ao limite de velocidade. Adicionalmente, foi criada uma ferramenta gráfica que auxilia o desenvolvimento de soluções aplicando as técnicas de redes neurais de forma fácil e clara usando a biblioteca desenvolvida. Para avaliação de desempenho da ANNCOM, foram realizados seis treinamentos para classificação de clientes de baixa tensão de uma distribuidora de energia elétrica. O treinamento das redes, utilizando a ANNCOM com a tecnologia CUDA, alcançou um desempenho quase 30 vezes maior do que a ANNCOM auxiliada pela MKL (Math Kernel Library) da Intel, também utilizada pelo Matlab. / [en] The Artificial Neural Networks have been used quite successfully in problems of prediction, inference and classification standards. For this reason, are already available several libraries that facilitate the modeling and training networks, such as NNtool Matlab or WEKA. While these libraries are widely used, they
have limited mobility, flexibility and performance. This limitation is due mainly to the training that can take a long time when there is a large amount of data with many attributes. This paper proposes the development of a library (ANNCOM) easy to use, flexible platform and architecture that uses the CUDA (Compute Unified Device Architecture) to reduce the training times of the networks. This architecture is a form of GPGPU (GeneralPurpose computing on Graphics Processing Units) and has been used as a solution in parallel computing in the area of high performance, since the technology used in current processors are reaching the limit of speed. Additionally created a graphical tool that helps the development of solutions using the techniques of neural networks easily and clearly using the library developed. For performance evaluation ANNCOM were conducted six trainings for customer classification of a low voltage electricity distribution. The training of networks using ANNCOM with CUDA technology, achieved a performance
nearly 30 times greater than the ANNCOM aided by MKL (Math Kernel Library) by Intel, also used by Matlab.
|
Page generated in 0.0528 seconds