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

Improvements for GPU binary wheels #672

Open
1 of 5 tasks
pramodk opened this issue Oct 20, 2021 · 2 comments
Open
1 of 5 tasks

Improvements for GPU binary wheels #672

pramodk opened this issue Oct 20, 2021 · 2 comments

Comments

@pramodk
Copy link
Collaborator

pramodk commented Oct 20, 2021

This is a placeholder ticket to gather possible improvements for binary wheel:

  • As noted here, see if CMAKE_EXE_LINKER_FLAGS pollution could be avoided or worth doing.
  • Today if gpu wheel is installed and we try to use nrnivmodl-core mod-dir without loading nvhpc module then we get compilation errors:
$ nrnivmodl-core .
INFO : Using neuron-gpu-nightly Package (Alpha Developer Version)
...
Translating x86_64/corenrn/mod2c/stim.mod into x86_64/corenrn/mod2c//stim.cpp
x86_64-linux-gnu-g++: error: unrecognized debug output level ‘pu=cuda11.0,cc60,cc70,cc80’
cvode_emit=0 cvode_not_allowed=0
Thread Safe
Translating x86_64/corenrn/mod2c/svclmp.mod into x86_64/corenrn/mod2c//svclmp.cpp
x86_64-linux-gnu-g++: error: unrecognized command line option ‘-mp’; did you mean ‘-p’?
x86_64-linux-gnu-g++: error: unrecognized command line option ‘--c++14’; did you mean ‘--stdc++14’?
cvode_emit=0 cvode_not_allowed=0
x86_64-linux-gnu-g++: error: unrecognized command line option ‘-acc’
Thread Safe
x86_64-linux-gnu-g++: error: unrecognized command line option ‘-Mautoinline’
make: *** [/home/kumbhar/nrn/nrn_test_venv_38/lib/python3.8/site-packages/neuron/.data/share/coreneuron/nrnivmodl_core_makefile:211: x86_64/corenrn/build/enginemech.o] Error 1
make: *** Waiting for unfinished jobs....

This is because nrnivmodl_core_makefile hardcodes PGI/NVHPC compiler flags. To avoid this, if GPU support is enabled then Makefile should check if CXX/CC is NVHPC compiler otherwise it should print an error and exit (e.g. "GPU enabled NEURON/CoreNEURON can be used with NVIDIA's NVHPC compiler. Please load module or set CC/CXX variables to nvc/nvc++ compilers")

@olupton
Copy link
Contributor

olupton commented Feb 24, 2022

https://bbpgitlab.epfl.ch/hpc/personal/neuron-gpu-wheel-testing is set up to run packaging/python/test_wheels.sh every night on a GPU node, but reporting the results is still work-in-progress.

@olupton
Copy link
Contributor

olupton commented Feb 24, 2022

neuronsimulator/nrn#1657 makes the list compute capabilities explicit: 6.0, 7.0, 8.0.
In #713 the default changed to 7.0 and 8.0 because 6.0 is not supported by NVHPC with OpenMP target offload, but for now the GPU wheels use OpenACC (and mod2c).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants