|
19 | 19 |
|
20 | 20 | #:enddef |
21 | 21 |
|
22 | | -#:def GPU_PARALLEL_LOOP(code, collapse=None, private=None, parallelism='[gang, vector]', & |
| 22 | +#:def GPU_PARALLEL_LOOP_OLD(code, collapse=None, private=None, parallelism='[gang, vector]', & |
23 | 23 | & default='present', firstprivate=None, reduction=None, reductionOp=None, & |
24 | 24 | & copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, & |
25 | 25 | & no_create=None, present=None, deviceptr=None, attach=None, extraAccArgs=None, extraOmpArgs=None) |
26 | 26 |
|
27 | | - #:set acc_code = ACC_PARALLEL_LOOP(code, collapse, private, parallelism, default, firstprivate, reduction, reductionOp, copy, copyin, copyinReadOnly, copyout, create, no_create, present, deviceptr, attach, extraAccArgs) |
28 | | - #:set omp_code = OMP_PARALLEL_LOOP(code, collapse, private, parallelism, default, firstprivate, reduction, reductionOp, copy, copyin, copyinReadOnly, copyout, create, no_create, present, deviceptr, attach, extraOmpArgs) |
| 27 | + #:set acc_code = ACC_PARALLEL_LOOP_OLD(code, collapse, private, parallelism, default, firstprivate, reduction, reductionOp, copy, copyin, copyinReadOnly, copyout, create, no_create, present, deviceptr, attach, extraAccArgs) |
| 28 | + #:set omp_code = OMP_PARALLEL_LOOP_OLD(code, collapse, private, parallelism, default, firstprivate, reduction, reductionOp, copy, copyin, copyinReadOnly, copyout, create, no_create, present, deviceptr, attach, extraOmpArgs) |
29 | 29 |
|
30 | 30 | #if defined(MFC_OpenACC) |
31 | 31 | $:acc_code |
|
36 | 36 | #endif |
37 | 37 | #:enddef |
38 | 38 |
|
| 39 | +#:def GPU_PARALLEL_LOOP(collapse=None, private=None, parallelism='[gang, vector]', & |
| 40 | + & default='present', firstprivate=None, reduction=None, reductionOp=None, & |
| 41 | + & copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, & |
| 42 | + & no_create=None, present=None, deviceptr=None, attach=None, extraAccArgs=None, extraOmpArgs=None) |
| 43 | + |
| 44 | + #:set acc_directive = ACC_PARALLEL_LOOP(collapse, private, parallelism, default, firstprivate, reduction, reductionOp, copy, copyin, copyinReadOnly, copyout, create, no_create, present, deviceptr, attach, extraAccArgs) |
| 45 | + #:set omp_directive = OMP_PARALLEL_LOOP(collapse, private, parallelism, default, firstprivate, reduction, reductionOp, copy, copyin, copyinReadOnly, copyout, create, no_create, present, deviceptr, attach, extraOmpArgs) |
| 46 | + |
| 47 | +#if defined(MFC_OpenACC) |
| 48 | + $:acc_directive |
| 49 | +#elif defined(MFC_OpenMP) |
| 50 | + $:omp_directive |
| 51 | +#endif |
| 52 | + |
| 53 | +#:enddef |
| 54 | + |
| 55 | +#:def END_GPU_PARALLEL_LOOP() |
| 56 | + |
| 57 | + #:set acc_end_directive = '!$acc end parallel loop' |
| 58 | + #:set omp_end_directive = END_OMP_PARALLEL_LOOP() |
| 59 | + |
| 60 | +#if defined(MFC_OpenACC) |
| 61 | + $:acc_end_directive |
| 62 | +#elif defined(MFC_OpenMP) |
| 63 | + $:omp_end_directive |
| 64 | +#endif |
| 65 | + |
| 66 | +#:enddef |
| 67 | + |
39 | 68 | #:def GPU_ROUTINE(function_name=None, parallelism=None, nohost=False, cray_inline=False, extraAccArgs=None, extraOmpArgs=None) |
40 | 69 | #:assert isinstance(cray_inline, bool) |
41 | 70 | #:set acc_directive = ACC_ROUTINE(function_name=function_name, parallelism=parallelism, nohost=nohost, extraAccArgs=extraAccArgs) |
|
0 commit comments