SearcharxivSearch

arXiv · 1905.03641

Multiplica\c{c}\~ao de matrizes: uma compara\c{c}\~ao entre as abordagens sequencial (CPU) e paralela (GPU)

Abstract

Designing problems using matrices is very important in Computer Science. Fields like graph computer, graphs theory, and machine learning use matrices very often to solve their own problems. The most often matrix operation is the multiplication. It may be time-consuming if the matrices to be multiplied are large. For this reason, the parallel computer became a must to tackle this problem. In this report, it is presented a comparison between sequential and parallel approaches to computing the matrix multiplication using CUDA and openMP. The results show the importance of parallelizing mainly when the matrices are large. A modelagem de problemas utilizando matrizes \'e de extrema import\^ancia para Ci\^encia da Computa\c{c}\~ao. \'Areas como computa\c{c}\~ao gr\'afica, grafos e aprendizado de m\'aquina utilizam matrizes com alta frequ\^encia para solucionar seus respectivos problemas. Dessa forma, operar matrizes de maneira eficiente \'e muito importante para o desempenho de algoritmos. Uma das opera\c{c}\~oes de matrizes mais utilizadas \'e a multiplica\c{c}\~ao, que se torna um empecilho para o desempenho computacional de algoritmos na medida que o tamanho das matrizes a serem multiplicadas aumentam. Por conta disso, a computa\c{c}\~ao paralela se tornou uma solu\c{c}\~ao padr\~ao para abordar tal problema. Neste trabalho \'e apresentado uma compara\c{c}\~ao entre as abordagens sequencial e paralela para multiplica\c{c}\~ao de matrizes utilizando CUDA e OpenMP. O resultado da an\'alise realizada entre o tamanho da matriz e o desempenho da multiplica\c{c}\~ao mostra a import\^ancia da paraleliza\c{c}\~ao principalmente para matrizes de ordem elevada.

Explore related subjects

Keep this discovery

BibTeXRIS

Andre G. C. Pacheco. 2019-05-09. Multiplica\c{c}\~ao de matrizes: uma compara\c{c}\~ao entre as abordagens sequencial (CPU) e paralela (GPU). https://arxiv.org/abs/1905.03641

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

PASCAL: A Phase-Aware Shared-Cache Model for Parallel Scans

In modern AI Accelerators and GPGPUs, many concurrent cores repeatedly access the same shared data. This pattern occurs in attention, where different query tiles share the same K/V block, GEMM, where every tile in a row reads the same panel, and many other operators. We name this pattern parallel scan. Due to a significant amount of data reuse in this pattern, the cache is expected to capture as much data reuse as possible and largely reduce requests sent to the main memory for both performance and energy consumption concerns. However, in reality, because of the intrinsic asynchrony of multi-cores, the actual cache miss rate and DRAM traffic can be much higher compared to ideal cases. In this paper, we propose PASCAL, a shared-cache model for parallel scans. It is aware of the dynamic feature of progress divergence across multi-cores, correlate the divergence with the combination of different factors such as occupancy, and predicts the cache miss rate before execution. Because prediction needs no target trace, timing, or counters, PASCAL supports design-space exploration at scales where cycle-accurate simulation is impractical, and its policy-independent bound states how much traffic no replacement policy can avoid. A MAPE of 13.84% is achieved in a 60-configuration dataset with various software pipeline depths, occupancies, and memory access data paths on an NVIDIA GB10 GPU, against 44.79% for physical-wave TileSight and 54.16% for exact symbolic SDCM.

cs.PF

Mathematical Modeling of a Cognitive Continuum Digital Shadow for Large-Scale, Cross-Facility Workflows

We present the mathematical foundations of a \emph{Cognitive Continuum Digital Shadow} (CCDS), a decision-support layer between users and the cross-facility infrastructure---instruments, networks, data stores and compute centers---of exascale and post-exascale scientific workflows. The CCDS couples a state-space representation of the continuum with multistage stochastic programming, so that deployment scenarios can be explored and optimized \emph{before} jobs are launched. This allows operators and users to quantify the cost, makespan and energy trade-offs of a workflow under uncertain resource availability, and hedge their decisions accordingly. We formulate the underlying optimization as a multimode, resource-constrained, stochastic supply-chain network design problem and demonstrate it on a realistic genomics workflow scheduled across heterogeneous HPC and data-center resources. This is the first of three papers; the second treats the underlying software architecture and the third reports large-scale use-cases.

cs.PF

RGB Input Pipelines: Throughput, GPU Memory, and Transformation Coverage

An image-augmentation pipeline must deliver a complete batch before a model can use it. We compare seven input paths from five libraries, starting with RGB JPEG files and ending with a synchronized CUDA float16 batch. We manually matched transformation recipes and parameters across libraries to make the workloads as comparable as possible. The experiment uses 57 selected recipes, a batch size of 256, and one NVIDIA L4 machine. Throughput and peak process GPU memory are recorded together in 759 measurements. On the 11 recipes shared by all paths, DALI and AlbumentationsX have median throughputs of 5,029 and 4,679 images/s, with median peak GPU memory of 2,086 and 1,852 MiB. Broader pairwise comparisons favor AlbumentationsX on 26/26 TorchVision recipes, 50/51 Kornia recipes, and 25/26 Pillow recipes. DALI is faster than AlbumentationsX on all 22 shared recipes, with a median throughput ratio of 1.18x. A separate census reports coverage of the 118 entries in a selected AlbumentationsX RGB catalog. The study measures input preparation at fixed settings; it does not measure model training, numerical equivalence, or the best attainable configuration of each library. Benchmark code: https://github.com/albumentations-team/benchmark.

cs.PF