Skip to content
Snippets Groups Projects
Commit 8fea4788 authored by clac16's avatar clac16
Browse files

Ajustes ao texto (por Daniel)

parent 06bafbb5
No related branches found
No related tags found
No related merge requests found
......@@ -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 dois 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 aproximadamente \(1.4\)
programa gerado pelo ICC do que no produzido pelo GCC, e cerca de \(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}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment