@@ -34,7 +34,7 @@ static void nrn_rhs(NrnThread* _nt) {
3434
3535 nrn_pragma_acc (parallel loop present (vec_rhs [0 :i3], vec_d [0 :i3]) if (_nt->compute_gpu )
3636 async (_nt->streams [_nt->stream_id ]))
37- nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ))
37+ nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ) depend (inout: _nt-> streams [_nt-> stream_id ]) nowait )
3838 for (int i = i1; i < i3; ++i) {
3939 vec_rhs[i] = 0 .;
4040 vec_d[i] = 0 .;
@@ -46,7 +46,7 @@ static void nrn_rhs(NrnThread* _nt) {
4646 nrn_pragma_acc (
4747 parallel loop present (fast_imem_d [i1:i3], fast_imem_rhs [i1:i3]) if (_nt->compute_gpu )
4848 async (_nt->streams [_nt->stream_id ]))
49- nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ))
49+ nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ) depend (inout: _nt-> streams [_nt-> stream_id ]) nowait )
5050 for (int i = i1; i < i3; ++i) {
5151 fast_imem_d[i] = 0 .;
5252 fast_imem_rhs[i] = 0 .;
@@ -76,7 +76,7 @@ static void nrn_rhs(NrnThread* _nt) {
7676 double * p = _nt->nrn_fast_imem ->nrn_sav_rhs ;
7777 nrn_pragma_acc (parallel loop present (p, vec_rhs) if (_nt->compute_gpu )
7878 async (_nt->streams [_nt->stream_id ]))
79- nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ))
79+ nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ) depend (inout: _nt-> streams [_nt-> stream_id ]) nowait )
8080 for (int i = i1; i < i3; ++i) {
8181 p[i] -= vec_rhs[i];
8282 }
@@ -93,7 +93,7 @@ static void nrn_rhs(NrnThread* _nt) {
9393 vec_v [0 :i3],
9494 parent_index [0 :i3]) if (_nt->compute_gpu )
9595 async (_nt->streams [_nt->stream_id ]))
96- nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ))
96+ nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ) depend (inout: _nt-> streams [_nt-> stream_id ]) nowait )
9797 for (int i = i2; i < i3; ++i) {
9898 double dv = vec_v[parent_index[i]] - vec_v[i];
9999 /* our connection coefficients are negative so */
@@ -153,7 +153,7 @@ static void nrn_lhs(NrnThread* _nt) {
153153 */
154154 double * p = _nt->nrn_fast_imem ->nrn_sav_d ;
155155 nrn_pragma_acc (parallel loop present (p, vec_d) if (_nt->compute_gpu ) async (_nt->streams [_nt->stream_id ]))
156- nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ))
156+ nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ) depend (inout: _nt-> streams [_nt-> stream_id ]) nowait )
157157 for (int i = i1; i < i3; ++i) {
158158 p[i] += vec_d[i];
159159 }
@@ -163,7 +163,7 @@ static void nrn_lhs(NrnThread* _nt) {
163163 nrn_pragma_acc (parallel loop present (
164164 vec_d [0 :i3], vec_a [0 :i3], vec_b [0 :i3], parent_index [0 :i3]) if (_nt->compute_gpu )
165165 async (_nt->streams [_nt->stream_id ]))
166- nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ))
166+ nrn_pragma_omp (target teams distribute parallel for if (_nt->compute_gpu ) depend (inout: _nt-> streams [_nt-> stream_id ]) nowait )
167167 for (int i = i2; i < i3; ++i) {
168168 nrn_pragma_acc (atomic update)
169169 nrn_pragma_omp (atomic update)
0 commit comments