|
149 | 149 | $:omp_end_directive |
150 | 150 | #:enddef |
151 | 151 |
|
152 | | -#:def OMP_PARALLEL_LOOP(code, collapse=None, private=None, parallelism='[gang, vector]', & |
153 | | - & default='present', firstprivate=None, reduction=None, reductionOp=None, & |
154 | | - & copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, & |
155 | | - & no_create=None, present=None, deviceptr=None, attach=None, extraOmpArgs=None) |
156 | | - |
157 | | - #:set collapse_val = GEN_COLLAPSE_STR(collapse) |
158 | | - #:set parallelism_val = OMP_PARALLELISM_STR(parallelism) |
159 | | - #:set default_val = OMP_DEFAULT_STR(default) |
160 | | - #:set private_val = GEN_PRIVATE_STR(private, False).strip('\n') + GEN_PRIVATE_STR(firstprivate, True).strip('\n') |
161 | | - #:set reduction_val = GEN_REDUCTION_STR(reduction, reductionOp) |
162 | | - #:set copy_val = OMP_COPY_STR(copy) |
163 | | - #:set copyin_val = OMP_COPYIN_STR(copyin).strip('\n') + OMP_COPYIN_STR(copyinReadOnly).strip('\n') |
164 | | - #:set copyout_val = OMP_COPYOUT_STR(copyout) |
165 | | - #:set create_val = OMP_CREATE_STR(create) |
166 | | - #:set no_create_val = OMP_NOCREATE_STR(no_create) |
167 | | - #:set present_val = OMP_PRESENT_STR(present) |
168 | | - #:set deviceptr_val = OMP_DEVICEPTR_STR(deviceptr) |
169 | | - #:set attach_val = OMP_MAP_STR('always,tofrom', attach) |
170 | | - #:set extraOmpArgs_val = GEN_EXTRA_ARGS_STR(extraOmpArgs) |
171 | | - #:set clause_val = collapse_val.strip('\n') + parallelism_val.strip('\n') + & |
172 | | - & default_val.strip('\n') + private_val.strip('\n') + reduction_val.strip('\n') + & |
173 | | - & copy_val.strip('\n') + copyin_val.strip('\n') + & |
174 | | - & copyout_val.strip('\n') + create_val.strip('\n') + & |
175 | | - & no_create_val.strip('\n') + present_val.strip('\n') + & |
176 | | - & deviceptr_val.strip('\n') + attach_val.strip('\n') |
177 | | - #! Hardcoding the parallelism for now |
178 | | - |
179 | | - #:if MFC_COMPILER == NVIDIA_COMPILER_ID or MFC_COMPILER == PGI_COMPILER_ID |
180 | | - #:set omp_start_directive = '!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) ' |
181 | | - #:set omp_end_directive = '!$omp end target teams loop' |
182 | | - #:elif MFC_COMPILER == CCE_COMPILER_ID |
183 | | - #:set omp_start_directive = '!$omp target teams distribute parallel do simd defaultmap(firstprivate:scalar) ' |
184 | | - #:set omp_end_directive = '!$omp end target teams distribute parallel do simd' |
185 | | - #:elif MFC_COMPILER == AMD_COMPILER_ID |
186 | | - #:set omp_start_directive = '!$omp target teams distribute parallel do ' |
187 | | - #:set omp_end_directive = '!$omp end target teams distribute parallel do' |
188 | | - #:else |
189 | | - #:set omp_start_directive = '!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) ' |
190 | | - #:set omp_end_directive = '!$omp end target teams loop' |
191 | | - #:endif |
192 | | - |
193 | | - #:set omp_directive = omp_start_directive + clause_val + extraOmpArgs_val.strip('\n') |
194 | | - $:omp_directive |
195 | | - $:code |
196 | | - $:omp_end_directive |
197 | | -#:enddef |
198 | | - |
199 | | -#:def NEW_OMP_PARALLEL_LOOP(collapse=None, private=None, parallelism='[gang, vector]', & |
| 152 | +#:def OMP_PARALLEL_LOOP(collapse=None, private=None, parallelism='[gang, vector]', & |
200 | 153 | & default='present', firstprivate=None, reduction=None, reductionOp=None, & |
201 | 154 | & copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, & |
202 | 155 | & no_create=None, present=None, deviceptr=None, attach=None, extraOmpArgs=None) |
|
0 commit comments