27 lines
730 B
Markdown
27 lines
730 B
Markdown
|
# Cours A4
|
||
|
|
||
|
## 16/01 SIMD
|
||
|
|
||
|
-01 pas d'opti
|
||
|
-03 opti avec parallélisation, on transforme en a + b*c
|
||
|
-ffast-math, ignore les erreurs dans les données
|
||
|
|
||
|
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html
|
||
|
|
||
|
<xmmintrin.h>
|
||
|
|
||
|
si la fonction est de type
|
||
|
for (i=0, i++)
|
||
|
f(d[i]...)
|
||
|
{+ - / *}
|
||
|
float / double
|
||
|
|
||
|
on ne touche pas à la fonction, le compilateur sait vectoriser.
|
||
|
sinon, on va aller chercher dans les fonctions simd
|
||
|
|
||
|
attention aux shuffles, la partie 1 ne contient que des données de a et la partie 2 que des données de b.
|
||
|
|
||
|
## 19/01 OpenMP
|
||
|
|
||
|
$P41
|
||
|
Attention aux clauses, si les temps d'exécutions dans les itérations sont identiques, la demande de travail est plus coûteuse que le gain apporté.
|