Skip to content
  • Ben Cumming's avatar
    Seperable compilation of mechanism kernels on GPU (#353) · 3c283219
    Ben Cumming authored and Sam Yates's avatar Sam Yates committed
    Separable compilation of the CUDA kernels generated by modcc from NMODL files.
    
    CMake scripts:
    * Update the `build_modules()` helper function to cleanly handle calls to modcc that generate multiple output files.
    * Add a new library target `gpu_mechanisms` for the separately compiled CUDA kernels and the implementation of their C wrappers.
    * Reduce verbosity of compilation messages.
    
    * Simplify mechanism C++ namespace use: move everything in nest::mc::mechanisms::gpu::_mechanism-name_ into `nest::mc::gpu`, and similarly for multicore mechanism implementations, ions.
    * Remove template parameters for `value_type` and `size_type` from all of the 
    mechanism implementations, and use `fvm_value_type` and `fvm_size_type` everywhere instead.
    
    modcc changes:
    * Modify `CUDAPrinter` to keep track of 3 text buffers, one each for 
      "implementation", "interface" and "implementation interface":
    * Write the CUDA implementation interface to `X_impl.hpp...
    3c283219