Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Conversation

olupton
Copy link
Contributor

@olupton olupton commented Mar 29, 2021

Description
This PR ensures that calls to acc_copyin(...) have corresponding calls to acc_delete(...), fixing errors such as

FATAL ERROR: variable in data clause is partially present on the device: name=(unknown)

when repeatedly running CoreNEURON on GPU in the same process.

Also fix handling of artificial cells to avoid problems with IntervalFire.

#513 remains valid, because #197 means that minor additional changes are required in NEURON.

How to test this?
Follow instructions in #513.

Test System

  • OS: BB5
  • Compiler: PGI 21.2
  • Backend: GPU

Use certain branches for the SimulationStack CI

CI_BRANCHES:NEURON_BRANCH=master,

Ensure that calls to acc_copyin(...) have corresponding calls to
acc_delete(...), fixing errors (variable in data clause is partially
present on the device) when repeatedly running CoreNEURON on GPU in the
same process.

Also fix handling of artificial cells to avoid problems with
IntervalFire.
@olupton
Copy link
Contributor Author

olupton commented Mar 29, 2021

I re-ran the failing GitLab pipeline and it worked: https://bbpgitlab.epfl.ch/hpc/coreneuron/-/pipelines/2536 -- the failure was related to BB5 infrastructure.

This adds `nrn_newtonspace_delete_from_device` and
`nrn_sparseobj_delete_from_device` methods that include `acc_delete`
counterparts to `acc_copyin` calls.
Copy link
Collaborator

@pramodk pramodk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - some minor comments to address.

Copy link
Collaborator

@pramodk pramodk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@pramodk pramodk merged commit b18835b into master Mar 30, 2021
@pramodk pramodk deleted the olupton/openacc-cleanup branch March 30, 2021 15:10
olupton added a commit to neuronsimulator/nrn that referenced this pull request Mar 30, 2021
nrnhines pushed a commit to neuronsimulator/nrn that referenced this pull request Mar 30, 2021
* Enable coreneuron_modtests::datareturn_py on GPU.

With BlueBrain/CoreNeuron#515 this enables
GPU execution of this test.
alexsavulescu pushed a commit to neuronsimulator/nrn that referenced this pull request Apr 13, 2021
* Enable coreneuron_modtests::datareturn_py on GPU.

With BlueBrain/CoreNeuron#515 this enables
GPU execution of this test.
alexsavulescu pushed a commit to neuronsimulator/nrn that referenced this pull request Apr 30, 2021
* Enable coreneuron_modtests::datareturn_py on GPU.

With BlueBrain/CoreNeuron#515 this enables
GPU execution of this test.
pramodk pushed a commit to neuronsimulator/nrn that referenced this pull request Nov 2, 2022
* Add OpenACC data cleanup.
  Ensure that calls to acc_copyin(...) have corresponding calls to
  acc_delete(...), fixing errors (variable in data clause is partially
  present on the device) when repeatedly running CoreNEURON on GPU in the
  same process.

  Also fix handling of artificial cells to avoid problems with IntervalFire.

* Address comment, add more acc_delete calls.

  This adds `nrn_newtonspace_delete_from_device` and
  `nrn_sparseobj_delete_from_device` methods that include `acc_delete`
  counterparts to `acc_copyin` calls.

CoreNEURON Repo SHA: BlueBrain/CoreNeuron@b18835b
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants