Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
IC
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
clac16
IC
Commits
8fea4788
Commit
8fea4788
authored
5 months ago
by
clac16
Browse files
Options
Downloads
Patches
Plain Diff
Ajustes ao texto (por Daniel)
parent
06bafbb5
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
texto/resumo/resumo-erad.tex
+11
-14
11 additions, 14 deletions
texto/resumo/resumo-erad.tex
with
11 additions
and
14 deletions
texto/resumo/resumo-erad.tex
+
11
−
14
View file @
8fea4788
...
...
@@ -14,7 +14,7 @@
\title
{
Comparação de compiladores C/C++ para processadores x86
}
\author
{
Cristopher Carcereri
\inst
{
1
}}
\author
{
Cristopher Carcereri
\inst
{
1
}
\and
Daniel Oliveira
\inst
{
1
}}
\address
{
Departamento de Informática -- Universidade Federal do Paraná (UFPR)
}
...
...
@@ -58,17 +58,17 @@ de aplicações científicas, usando um conjunto abrangente de benchmarks.
Além de quantificar diferenças no tempo de execução, buscamos investigar as
causas das disparidades observadas.
\cite
{
kasliwal2017
}
compara a performance de seis compiladores
C/C++ para Intel Xeon Platinum baseado na arquitetura Skylake usando três
kernels pararelizados com OpenMP.
%
\cite{kasliwal2017} compara a performance de seis compiladores
%
C/C++ para Intel Xeon Platinum baseado na arquitetura Skylake usando três
%
kernels pararelizados com OpenMP.
\cite
{
davis2021
}
testou seis compiladores usando cinco aplicações
em sistemas heterogêneos com GPUs Nvidia V100.
Com
o
maior parte dos compiladores foi empregado OpenMP para o GPU offload, mas
OpenACC e CUDA
e
também foram utilizados .
Com
a
maior parte dos compiladores foi empregado OpenMP para o GPU offload, mas
OpenACC e CUDA também foram utilizados .
\cite
{
halbiniak2022
}
examina cinco compiladores para
processadores AMD EPYC Rome usando duas implementações, paralelizadas com OpenMP,
de modelagem numérica da solidificação de ligas.
Nos
trê
s casos, a avaliação mostrou que o desempenho dos compiladores varia
Nos
doi
s casos, a avaliação mostrou que o desempenho dos compiladores varia
substancialmente.
\section
{
Os testes
}
...
...
@@ -125,7 +125,6 @@ tempo de oito execuções individuais e calculou-se uma média aritmética.
A Tabela~
\ref
{
tab:resultados-medios
}
mostra a média geométrica dos tempos médios
calculados para os benchmarks com algumas combinações de compilador e flags.
Em todos os casos o desvio padrão geométrico é igual ou inferior a 1.01.
São omitidas a flag de dialeto (
\texttt
{
-std=gnu89
}
) usada com alguns programas
em C e as flags que habilitam OpenMP (
\texttt
{
-qopenmp
}
com ICC,
\texttt
{
-fopenmp
}
com os demais compiladores).
...
...
@@ -180,7 +179,7 @@ Foram escolhidos os códigos gerados com as flags \texttt{-O3} e
A Listagem~
\ref
{
list:pfilter.c.1
}
contém um segmento do programa.
A seção que o inclui executa aproximadamente
\(
2
.
4
\)
vezes mais rápido no
programa gerado pelo ICC do que no produzido pelo GCC, e
aproximadament
e
\(
1
.
4
\)
programa gerado pelo ICC do que no produzido pelo GCC, e
cerca d
e
\(
1
.
4
\)
vezes mais rápido no GCC do que no Clang e AOCC.
\begin{lstlisting}
[label=list:pfilter.c.1,basicstyle=
\small
,
...
...
@@ -231,7 +230,7 @@ computá-lo uma única vez, no laço exterior: o código correspondente ao segme
apenas carrega este valor.
Nenhum dos compiladores, no entanto, remove toda a atribuição da linha 4.
Outro trecho
de particle-filter
é apresentado na Listagem~
\ref
{
list:pfilter.c.3
}
.
Outro trecho é apresentado na Listagem~
\ref
{
list:pfilter.c.3
}
.
Como no primeiro exemplo, apenas o ICC vetoriza o código.
Para tanto, o laço principal mantém quatro acumuladores em um registrador.
Ao sair do laço, o valor dos quatro acumuladores é somado.
...
...
@@ -245,7 +244,7 @@ Clang e AOCC nem vetorizam nem realizam loop unrolling.
}
\end{lstlisting}
\section
{
Impacto da vetorizaç
ão
}
\section
{
Conclus
ão
}
A análise dos códigos demonstra que o compilador da Intel identifica
possibilidades de vetorização automática que os outros compiladores ignoram.
GCC, em especial, mesmo ao vetorizar um código, pode não ser capaz de utilizar
...
...
@@ -256,7 +255,6 @@ De fato, como mostra a Tabela~\ref{tab:resultados-medios}, ICC é o compilador
mais afetado ao se desabilitar a vetorização automática, com sua performance
média piorando em cerca de 4
\%
.
A vantagem frente ao GCC é reduzida para cerca de 1
\%
.
Mas essa diferença não reflete totalmente o efeito da vetorização na performance
do ICC.
A análise do código revela que o código compilado com
\texttt
{
-no-vec
}
ainda
...
...
@@ -265,9 +263,8 @@ na Listagem~\ref{list:pfilter.c.2} e Listagem~\ref{list:pfilter.c.3}, em que
não apenas a vetorização é mantida, mas o compilador passa a realizar
loop unrolling para operar sobre oito elementos (dois vetores) por iteração.
\section
{
Conclusão
}
\bibliographystyle
{
sbc
}
\bibliography
{
sbc-template
}
\bibliography
{
resumo-erad
}
\end{document}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment