jesús cámara morenoluna.inf.um.es/.../pfcs_y_tms/2016presentacionpfc_jesuscamara.… · machine...
TRANSCRIPT
-
Jesús Cámara Moreno
Murcia, 14 de Septiembre de 2016
-
2
-
3
-
•
•
•
•
4
-
•
•
•
5
-
6
-
•
–
–
–
7
-
8
-
9
-
•
•
– -openmp-simd
– #pragma ivdep #pragma vector aligned #pragma vector always #pragma simd
•
– _mm_alloc() _assume_aligned()
– -opt-dynamic-align -opt-prefetch
– #pragma prefetch
• -ip -xhost -parallel -openmp-opt-threads-per-core
10
-
11
-
•
•
•
12
void doMatMul(...,n,tb)
{
for(...) {
for(...) {
for(...) {
}
}
}
}
void doMatMulBloq(...,n,tb,nThr)
{
omp_set_num_threads(nThr);
#pragma omp parallel for
for(...) {
for(...) {
for(...) {
doMatMul(...);
}
}
}
}
-
13
-
•
•
–
–
–
•
14
-
•
15
-
•
16
-
•
17
-
18
-
•
•
19
-
•
#pragma omp parallel
{
#pragma omp sections
{
#pragma section
{
#pragma offload target(mic:micId) in(A ) in(B ) inout(C )
{
doMatMul( );
}
}
#pragma section
{
doMatMulBloq( );
}
}
} 20
-
•
21
-
•
22
-
•
23
-
24
-
•
•
•
•
25
-
26
-
•
•
•
•
27
-
28