Skip to content
Snippets Groups Projects
  • Ben Cumming's avatar
    Feature/gpu validation issue #68 (#84) · 0aafd72d
    Ben Cumming authored and Sam Yates's avatar Sam Yates committed
    Fixes #68
    Corresponding feature: #67
    
    * Reproduce the hh-soma validation test on GPU.
    * Reproduce the ball and stick model on GPU.
    * Reproduce miniapp spike chains.
    * Add `cell_group` unit test to the cuda unit tests: builds simple ball and stick model and integrates for 50ms and records how many spikes occur; it is a simple early warning that something is broken, but is no substitute for the validation tests.
    * Update the `validate_soma`, `validate_ball_and_stick` and `validate_synapses` validation tests for the GPU backend:
        * refactor individual tests into test runner functions that are templated on lowered cell type;
        * for each of the original validation tests add a cuda (.cu) implementation, and write an additional "backend" field to the validation trace metadata.
    * Use a `CPrinter` to generate the same `net_receive` block that is used for the multicore backend.
      Note: this is not efficient, because each read/write requires a cuda memcpy between host and device memory, however it allows us to pass all unit and validation tests. A more efficient GPU-specific implementation is left for later optimization work.
    * Make paths to `gtest.h`, `test_common_cells.hpp` etc. in test sources consistent relative paths, and remove the `tests/` directory from the include path.
    0aafd72d