Skip to content

Native GPU fixed-step path (Phase B): OpenACC integration without runtime CoreNEURON - #3801

Draft
nrnhines wants to merge 51 commits into
masterfrom
hines-grok/feature/neuron-core-gpu-adoption
Draft

Native GPU fixed-step path (Phase B): OpenACC integration without runtime CoreNEURON#3801
nrnhines wants to merge 51 commits into
masterfrom
hines-grok/feature/neuron-core-gpu-adoption

Document native GPU gap junction CPU fixed-step fallback

9874a5b
Select commit
Loading
Failed to load commit list.
SonarQubeCloud / SonarCloud Code Analysis succeeded Jun 25, 2026 in 9m 9s

Annotations

Check warning on line 157 in src/neuron/gpu/sync.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this variable a pointer-to-const. The current type of "vec_sav_rhs" is "double *const".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-YErJ2fs32-9q3&open=AZ7v2s-YErJ2fs32-9q3&pullRequest=3801

Check warning on line 27 in src/neuron/gpu/post_solve.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this variable a pointer-to-const. The current type of "vec_rhs" is "double *const".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-wErJ2fs32-9rO&open=AZ7v2s-wErJ2fs32-9rO&pullRequest=3801

Check warning on line 75 in src/neuron/gpu/config.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use "std::print" instead of "fprintf".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ78H5xJJ052HC-ootXu&open=AZ78H5xJJ052HC-ootXu&pullRequest=3801

Check failure on line 15 in test/unit_tests/gpu/fadvance_link_stubs.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Add a nested comment explaining why this method is empty, or complete the implementation.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2srvErJ2fs32-9pi&open=AZ7v2srvErJ2fs32-9pi&pullRequest=3801

Check warning on line 15 in src/neuron/gpu/sync.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

unused variable 'vec_v'

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-YErJ2fs32-9qi&open=AZ7v2s-YErJ2fs32-9qi&pullRequest=3801

Check warning on line 68 in src/neuron/gpu/offload.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Define and throw a dedicated exception instead of using a generic one.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-iErJ2fs32-9rB&open=AZ7v2s-iErJ2fs32-9rB&pullRequest=3801

Check failure on line 12 in src/neuron/gpu/config.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Global variables should be const.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2tAbErJ2fs32-9sy&open=AZ7v2tAbErJ2fs32-9sy&pullRequest=3801

Check failure on line 21 in test/unit_tests/gpu/device_state.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Global pointers should be const at every level.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2suaErJ2fs32-9pr&open=AZ7v2suaErJ2fs32-9pr&pullRequest=3801

Check failure on line 23 in test/unit_tests/gpu/fadvance.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Customize this struct's copy constructor to participate in resource management. Customize or delete its copy assignment operator. Also consider whether move operations should be customized.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2su5ErJ2fs32-9p0&open=AZ7v2su5ErJ2fs32-9p0&pullRequest=3801

Check warning on line 166 in src/neuron/gpu/device_state.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Define and throw a dedicated exception instead of using a generic one.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2tAAErJ2fs32-9si&open=AZ7v2tAAErJ2fs32-9si&pullRequest=3801

Check failure on line 21 in test/unit_tests/gpu/upload.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Customize this struct's copy constructor to participate in resource management. Customize or delete its copy assignment operator. Also consider whether move operations should be customized.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2suvErJ2fs32-9px&open=AZ7v2suvErJ2fs32-9px&pullRequest=3801

Check warning on line 623 in src/coreneuron/permute/cellorder.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

This function has 11 parameters, which is greater than the 7 authorized.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2sz6ErJ2fs32-9qV&open=AZ7v2sz6ErJ2fs32-9qV&pullRequest=3801

Check failure on line 80 in src/neuron/gpu/offload.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace this use of "void *" with a more meaningful type.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-iErJ2fs32-9rD&open=AZ7v2s-iErJ2fs32-9rD&pullRequest=3801

Check failure on line 65 in src/neuron/gpu/device_assign.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Global variables should be const.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2tAJErJ2fs32-9sp&open=AZ7v2tAJErJ2fs32-9sp&pullRequest=3801

Check warning on line 82 in src/neuron/gpu/device_assign.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use the init-statement to declare "requested" inside the if statement.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2tAJErJ2fs32-9sr&open=AZ7v2tAJErJ2fs32-9sr&pullRequest=3801

Check warning on line 101 in src/neuron/gpu/net_send_buffer.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use "std::print" instead of "fprintf".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-6ErJ2fs32-9rn&open=AZ7v2s-6ErJ2fs32-9rn&pullRequest=3801

Check warning on line 93 in src/neuron/gpu/post_solve.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this variable a pointer-to-const. The current type of "vec_rhs" is "double *const".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-wErJ2fs32-9rS&open=AZ7v2s-wErJ2fs32-9rS&pullRequest=3801

Check warning on line 602 in src/coreneuron/permute/cellorder.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this parameter a pointer-to-const. The current type of "vec_d" is "double *".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2sz6ErJ2fs32-9qU&open=AZ7v2sz6ErJ2fs32-9qU&pullRequest=3801

Check failure on line 22 in test/unit_tests/gpu/upload_link_stubs.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Add a nested comment explaining why this method is empty, or complete the implementation.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2suQErJ2fs32-9pn&open=AZ7v2suQErJ2fs32-9pn&pullRequest=3801

Check warning on line 69 in src/neuron/gpu/sync.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Value stored to 'vec_d' during its initialization is never read

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-YErJ2fs32-9q9&open=AZ7v2s-YErJ2fs32-9q9&pullRequest=3801

Check failure on line 977 in src/parallel/ocbbs.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace this use of "void *" with a more meaningful type.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2swxErJ2fs32-9qE&open=AZ7v2swxErJ2fs32-9qE&pullRequest=3801

Check failure on line 987 in src/parallel/ocbbs.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace this use of "void *" with a more meaningful type.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2swxErJ2fs32-9qG&open=AZ7v2swxErJ2fs32-9qG&pullRequest=3801

Check warning on line 136 in src/neuron/gpu/sync.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

unused variable 'vec_rhs'

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-YErJ2fs32-9qp&open=AZ7v2s-YErJ2fs32-9qp&pullRequest=3801

Check failure on line 124 in src/neuron/gpu/device_state.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Ensure you don't need to lock this mutex recursively, and replace it with "std::mutex".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2tAAErJ2fs32-9se&open=AZ7v2tAAErJ2fs32-9se&pullRequest=3801

Check failure on line 71 in src/neuron/gpu/offload.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Global variables should be const.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ7v2s-iErJ2fs32-9rC&open=AZ7v2s-iErJ2fs32-9rC&pullRequest=3801