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

Add SEClamp support in CoreNEURON #381

Merged
merged 9 commits into from
Oct 9, 2020
Merged

Conversation

pramodk
Copy link
Collaborator

@pramodk pramodk commented Aug 18, 2020

  • add svclmp.mod mod file from NEURON
  • update registeration callbacks
  • expose at_time in the header file

 - add svclmp.mod mod file from NEURON
 - update registeration callbacks
 - expose at_time in the header file
@pramodk pramodk requested a review from nrnhines August 18, 2020 19:13
Copy link
Collaborator

@nrnhines nrnhines left a comment

Choose a reason for hiding this comment

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

This seem basically sound. I.e at_time already has an implementation. Also after_cvode likely emits the correct code (just puts the call to the function in the nrn_solve function) and if not I can activate the proper code in mod2c.

@pramodk
Copy link
Collaborator Author

pramodk commented Aug 18, 2020

NMODL needs to handle after_cvode. Also, at_time function needs some extra annotation for GPU:


PGCC/x86-64 Linux 19.10-0: compilation completed with warnings
PGCC-S-1000-Call in OpenACC region to procedure '_ZN10coreneuron7at_timeEPNS_9NrnThreadEd' which has no acc routine information (/jenkins/07/workspace/oss.coreneuron.pipeline/build_GPU-non-unified/coreneuron/svclmp.cpp: 434)
PGCC-W-0155-Compiler failed to translate accelerator region (see -Minfo messages): Missing branch target block (/jenkins/07/workspace/oss.coreneuron.pipeline/build_GPU-non-unified/coreneuron/svclmp.cpp: 336)
PGCC-F-0704-Compilation aborted due to previous errors. (/jenkins/07/workspace/oss.coreneuron.pipeline/build_GPU-non-unified/coreneuron/svclmp.cpp)
PGCC/x86-64 Linux 19.10-0: compilation aborted

@cattabiani
Copy link
Contributor

please retest

@cattabiani
Copy link
Contributor

Given the recent work done by @iomaganaris on at_time, I think this PR can be merged too right?

@pramodk
Copy link
Collaborator Author

pramodk commented Oct 5, 2020

Yes but nmodl submodule needs to be updated in coreneuron repo.

@pramodk
Copy link
Collaborator Author

pramodk commented Oct 5, 2020

Warning: No --target specified on command-line. Using default system target 
3321        "avx512skx-i32x16". 
3322Warning: No --target specified on command-line. Using default system target 
3323        "avx512skx-i32x16". 
3324x86_64/core/mod2c/svclmp.ispc:83:13: Error: Undeclared symbol "at_time". 
3325            at_time(nt, inst->dur1[id]);
3326            ^^^^^^^
3327
3328x86_64/core/mod2c/svclmp.ispc:86:13: Error: Undeclared symbol "at_time". 
3329            at_time(nt, inst->tc2[id]);
3330            ^^^^^^^
3331
3332x86_64/core/mod2c/svclmp.ispc:89:13: Error: Undeclared symbol "at_time". 
3333            at_time(nt, inst->tc3[id]);
3334            ^^^^^^^

I don't remember how to expose "annotate" function for ISPC but @ohm314 or @iomaganaris might remember better.

@pramodk
Copy link
Collaborator Author

pramodk commented Oct 9, 2020

Thanks @iomaganaris for all fixes with ISPC!

@pramodk pramodk merged commit 483f9d9 into master Oct 9, 2020
@pramodk pramodk deleted the pramodk/seclamp-support branch October 9, 2020 21:34
pramodk added a commit to neuronsimulator/nrn that referenced this pull request Nov 2, 2022
* Add SEClamp support in CoreNEURON
  - add svclmp.mod mod file from NEURON
  - update registeration callbacks
  - expose at_time in the header file
* Fixed compilation issue for GPU with at_time and updated NMODL commit
* Added definition of at_time in nrnoc_ml.ispc
* Small fix for at_time declaration outside ispc

Co-authored-by: Ioannis Magkanaris <iomagkanaris@gmail.com>

CoreNEURON Repo SHA: BlueBrain/CoreNeuron@483f9d9
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.

4 participants