Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Part 1 of the big GPU merge #45

Merged
merged 61 commits into from
Nov 14, 2016
Merged

Part 1 of the big GPU merge #45

merged 61 commits into from
Nov 14, 2016

Commits on Sep 8, 2016

  1. nvcc can build miniapp

    * add CMake option and target for CUDA
    * add some workarounds for CUDA compiler bugs
    bcumming committed Sep 8, 2016
    Configuration menu
    Copy the full SHA
    b38f78b View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2016

  1. WIP towards basic GPU implementation

    * created a gpu multicell target type
      * missing CUDA specific kernels
      * basic cell state (voltage, current, etc) is on gpu
    * moved the vector library into main source tree
      * have not yet deleted external dependency
    bcumming committed Sep 9, 2016
    Configuration menu
    Copy the full SHA
    7e54957 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2016

  1. gpu WIP

    bcumming committed Sep 29, 2016
    Configuration menu
    Copy the full SHA
    b7bd5dd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3edad46 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1388d20 View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2016

  1. Configuration menu
    Copy the full SHA
    8e6d97f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4ee9930 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4c0864b View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2016

  1. WIP gpu version

    * more simplifications of the memory library
    * clean up of policy based matrix gpu/multicore implementation
    bcumming committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    d1a5b6e View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2016

  1. WIP merge

    bcumming committed Oct 6, 2016
    Configuration menu
    Copy the full SHA
    36ebcc7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    851f38c View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2016

  1. gpu WIP

    bcumming committed Oct 9, 2016
    Configuration menu
    Copy the full SHA
    4a1777f View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2016

  1. WIP - towards gpu support

    snapshot of code before attempting to merge the multicore and gpu
    implementation of the FVM into a single code base.
    The gpu version of the miniapp doesn't compile, but fixing this is
    better done as part of merging.
    
    * fixed bug in multicore fvm_multicell where solutions wasn't copied
      from rhs to voltage vector after linear system solution
    * add check for ion channel CV indexes to unit tests
        - this fails due to CV bug that is in issue 20
    * small fixes towards gpu support
    bcumming committed Oct 10, 2016
    Configuration menu
    Copy the full SHA
    2c6f5a3 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2016

  1. WIP gpu

    bcumming committed Oct 13, 2016
    Configuration menu
    Copy the full SHA
    c742fd5 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1 from eth-cscs/master

    merge from main
    bcumming committed Oct 13, 2016
    Configuration menu
    Copy the full SHA
    039d5a9 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2016

  1. WIP

    bcumming committed Oct 15, 2016
    Configuration menu
    Copy the full SHA
    121dade View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2016

  1. Support for units syntax within state block.

    Vasileios Karakasis committed Oct 22, 2016
    Configuration menu
    Copy the full SHA
    b6aec69 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2016

  1. WIP

    bcumming committed Oct 24, 2016
    Configuration menu
    Copy the full SHA
    44c8ac0 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2016

  1. WIP

    bcumming committed Oct 25, 2016
    Configuration menu
    Copy the full SHA
    78f60f5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5c09594 View commit details
    Browse the repository at this point in the history
  3. WIP

    bcumming committed Oct 25, 2016
    Configuration menu
    Copy the full SHA
    3830c9a View commit details
    Browse the repository at this point in the history
  4. WIP

    bcumming committed Oct 25, 2016
    Configuration menu
    Copy the full SHA
    2db99a2 View commit details
    Browse the repository at this point in the history
  5. WIP

    bcumming committed Oct 25, 2016
    Configuration menu
    Copy the full SHA
    65ed2fe View commit details
    Browse the repository at this point in the history
  6. WIP

    bcumming committed Oct 25, 2016
    Configuration menu
    Copy the full SHA
    7f1216d View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2016

  1. merge with master

    bcumming committed Oct 26, 2016
    Configuration menu
    Copy the full SHA
    de992ad View commit details
    Browse the repository at this point in the history
  2. WIP

    bcumming committed Oct 26, 2016
    Configuration menu
    Copy the full SHA
    b5bae5b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    06ef117 View commit details
    Browse the repository at this point in the history
  4. Merge branch 'master' into bugfix/modcc/state-block-units

    Vasileios Karakasis committed Oct 26, 2016
    Configuration menu
    Copy the full SHA
    18a9226 View commit details
    Browse the repository at this point in the history
  5. Adds unit tests for the STATE block.

    Vasileios Karakasis committed Oct 26, 2016
    Configuration menu
    Copy the full SHA
    05e4770 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2016

  1. WIP

    bcumming committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    b9b1e57 View commit details
    Browse the repository at this point in the history
  2. Address deprecated use of 'symbol' warning.

    Julia 0.5 deprecates use of `symbol` instead of
    `Symbol`. This patch just substitutes the
    correct call.
    halfflat committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    dbca304 View commit details
    Browse the repository at this point in the history
  3. final merge with master

    bcumming committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    ff14704 View commit details
    Browse the repository at this point in the history
  4. Addresses PR comments.

    Vasileios Karakasis committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    9e0b874 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #35 from vkarak/bugfix/modcc/state-block-units

    modcc: Support for units syntax within a state block.
    bcumming committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    f1eac25 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5174b69 View commit details
    Browse the repository at this point in the history
  7. Unit tests for math.hpp

    * Tests for `math::pi`, `math::lerp`, `math::area_frustrum`
      and `math::volume_frustrum`
    * Fix `math:pi<long double>()`.
    halfflat committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    a39c9a3 View commit details
    Browse the repository at this point in the history
  8. Extend range, view functionality.

    * New `filter` view: lazily selects based on predicate.
    * Generic `front` and `back` for sequences.
    * New rangeutil STL wrappers `stable_sort_by`, `all_of`, `any_of`.
    * Consolidate common utility unit testing structures into
      `tests/unit/common.hpp`
    halfflat committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    63c507b View commit details
    Browse the repository at this point in the history
  9. Add ball_and_squiggle model; fix ball_and_taper.

    * Make `test_common_cells.hpp` and `ball_and_taper.py` agree.
    * Add `ball_and_squiggle` model that has a tapering undulating
      profile.
    halfflat committed Oct 27, 2016
    Configuration menu
    Copy the full SHA
    830428a View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2016

  1. Address PR#46 review comments.

    * Add documentation of template parameters for `filter_iterator`.
    * Document use of `uninitalized<F>` for holding functional objects
      in `filter_iterator` and `transform_iterator`
    halfflat committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    cee495c View commit details
    Browse the repository at this point in the history
  2. Merge pull request #46 from halfflat/feature/more-range-utils

    More range functionality, unit tests.
    bcumming committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    c97135d View commit details
    Browse the repository at this point in the history
  3. Merge pull request #47 from halfflat/feature/new-test-model

    Feature/new test model
    bcumming committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    5ade8d0 View commit details
    Browse the repository at this point in the history
  4. Consolidate validation test code (issue #41)

    * Simplify trace analysis and reporting code in
      `trace_analysis.hpp`
    * Consolidate convergence test run procedures into
      new class `convergence_test_runner`.
    halfflat committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    1b929ff View commit details
    Browse the repository at this point in the history
  5. New compartment info structure for FVM.

    * Make `algorithm::sum`, `algorithm::mean` more generic,
      allowing use with array types.
    * Add `div_compartment` compartment representation, that
      holds geometric information for each half of a compartment
      that will then be used in calculating control volumes.
    * Add three compartmentalisation schemes/policies that
      discretize a segment into `div_compartment` objects:
        * `div_compartment_by_ends` divides based only on the
          segment end points and radii.
        * `div_compartment_sampler` forms frusta by sampling
          the segment radius at each compartment boundary
        * `div_compartment_integrator` computes the compartment
          areas and volumes exactly by summing all frustra
          in the intersection of the segment and the compartmnet
          span.
    halfflat committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    f189d73 View commit details
    Browse the repository at this point in the history
  6. Merge pull request #48 from halfflat/feature/consolidate-validation-t…

    …ests
    
    Consolidate validation tests (issue #41)
    bcumming committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    550da10 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #49 from halfflat/feature/divided-compartments

    Feature/divided compartments
    bcumming committed Oct 28, 2016
    Configuration menu
    Copy the full SHA
    a03af27 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2016

  1. Complex compartments

    * Use divided compartments to determine FVM coefficients.
    * Pick correct control volume in FVM from sgement position (avoids
      off-by-half error.)
    * Add colour override functionality to tsplot: `--colour` option.
    * Add const accessor for cell soma.
    * Source formatting, comments in `math.hpp`
    * Fix `range_view`: was using incorrectly named type trait.
    * Add unit test for `range_view`.
    * Allow points of discontinuity to be omitted from L-infinity norm
      calculations.
    * Add `-d, --min-dt` option to `validate.exe` to control time
      step in validation convergence tests.
    * Add validation test: confirm divided compartment policy does
      not effect results on simple frustrum dendrites.
    * Change default max compartments on validation tests to 100
      (ad hoc observed convergence limit at dt circa 0.001 ms;
      finder spatial division would required much finer dt.)
    * Make NEURON validation data generation scripts use CVODE by
      default, and with `secondorder=2` when non-zero `dt` is given.
    halfflat committed Oct 30, 2016
    Configuration menu
    Copy the full SHA
    e7a8fb6 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2016

  1. Remove division policy type parameter.

    * Use only `div_compartment_integrator` for compartmentalization in
      `fvm_multicell`. The policy will later be moved to a backend
      policy class.
    * For now, disable validation tests that test different division
      policies (see above).
    * Tweak comments and remove redundant `using`, following comments
      on PR#54.
    halfflat committed Oct 31, 2016
    Configuration menu
    Copy the full SHA
    5aeea90 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #54 from halfflat/feature/complex-compartments

    Complex compartments
    bcumming committed Oct 31, 2016
    Configuration menu
    Copy the full SHA
    e8d3285 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2016

  1. WIP

    bcumming committed Nov 2, 2016
    Configuration menu
    Copy the full SHA
    b39a93e View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2016

  1. Omp (#38)

    * first version of openmp threading back end
    
    * adding openmp parallel sort implementation
    
    * OpenMP sort working
    
    * Support for units syntax within state block.
    
    * Add soma-less cable cell to test cells.
    
    Also:
    * Ensure intrinsic and passive properties properly set on test cells.
    
    * Change bulk resistivity default.
    
    * Align defaults with values used in most of the NEURON
      validation scripts.
    * Use consistent 100 Ω·m bulk resistivity across both
      NEURON test models and basic validation cells.
    
    * OpenMP back end working
    
    * Add Extrae+paraver support, needs to fix compilation warnings
    
    * Reorganize validation data generation
    
    * Move generation and data to top-level validation directory.
    * Make BUILD_VALIDATION_DATA and VALIDATION_DATA_DIR cache vars.
    * Add helper CMake functions for data generation.
    
    Note `validation/ref/numeric/foo.sh` is just a placeholder.
    
    * Bugfix: hh_soma.jl
    
    * Use consistent scaling for y[1] scalar voltage in hh_soma.jl
    * Also: add more reserved target names to CMakeLists.txt
      helper function.
    
    * Refactor convergence tests; add numeric soma ref.
    
    * Amend data directory path in validation tests.
    * Enmodulate `hh_soma.jl`
    * Add HH channel reference data generations script.
    * Switch `validate_soma.cpp` to numeric reference data.
    * Consolidate common code in `validate_ball_and_stick.cpp`
    * Add (nearly) Rallpack1 validation test (see below).
    * Gentle failure on absence of reference data in
      `validate_ball_and_stick.cpp`
    
    Can't yet override mechanism default parameter values,
    so the cable cell model added to `test_common_cells.hpp`
    lets the default stand; validation script will have
    to use the default membrane conductance rather than that
    given by Rallpack1.
    
    * Add Rallpack1 validation, plus bugfix, clean
    
    * Implement Rallpack1 validation test (with a workaround
      for inability to set membrane conductance).
    * Fix bug in L≠1 case in PassiveCable.jl (this may still be
      wrong).
    * Fix bug in peak delta computation in trace analysis when
      both traces have no local maxima.
    * Gentle failure on missing `numeric_soma.json`
    * Allow multiple `-s` selection operations for `tsplot`,
      acting disjunctively.
    
    * Remove errant test file.
    
    * file's cleanup
    
    * Remove tabs
    
    * Use correct routine in numeric_rallpack1.jl x0.3
    
    * Configure-time test for julia
    
    * `math::infinity<>()` wrapper for infinity
    
    * Use name `i_e` for Stim current density
    
    * Use `math::infinity<>()` for infinite value
    
    * Adds unit tests for the STATE block.
    
    * Add "lib" to search prefixes for libtbb
    
    * Fix quoting error in library search.
    * Add "lib" to prefixes when system is "Linux".
    
    * Address deprecated use of 'symbol' warning.
    
    Julia 0.5 deprecates use of `symbol` instead of
    `Symbol`. This patch just substitutes the
    correct call.
    
    * Address deprecated use of 'symbol' warning.
    
    Julia 0.5 deprecates use of `symbol` instead of
    `Symbol`. This patch just substitutes the
    correct call.
    
    * Addresses PR comments.
    
    * Unit tests for math.hpp
    
    * Tests for `math::pi`, `math::lerp`, `math::area_frustrum`
      and `math::volume_frustrum`
    * Fix `math:pi<long double>()`.
    
    * Extend range, view functionality.
    
    * New `filter` view: lazily selects based on predicate.
    * Generic `front` and `back` for sequences.
    * New rangeutil STL wrappers `stable_sort_by`, `all_of`, `any_of`.
    * Consolidate common utility unit testing structures into
      `tests/unit/common.hpp`
    
    * Add `ball_and_squiggle` model; fix `ball_and_taper`.
    
    * Make `test_common_cells.hpp` and `ball_and_taper.py` agree.
    * Add `ball_and_squiggle` model that has a tapering undulating
      profile.
    
    * Address PR#46 review comments.
    
    * Add documentation of template parameters for `filter_iterator`.
    * Document use of `uninitalized<F>` for holding functional objects
      in `filter_iterator` and `transform_iterator`
    
    * Consolidate validation test code (issue #41)
    
    * Simplify trace analysis and reporting code in
      `trace_analysis.hpp`
    * Consolidate convergence test run procedures into
      new class `convergence_test_runner`.
    
    * New compartment info structure for FVM.
    
    * Make `algorithm::sum`, `algorithm::mean` more generic,
      allowing use with array types.
    * Add `div_compartment` compartment representation, that
      holds geometric information for each half of a compartment
      that will then be used in calculating control volumes.
    * Add three compartmentalisation schemes/policies that
      discretize a segment into `div_compartment` objects:
        * `div_compartment_by_ends` divides based only on the
          segment end points and radii.
        * `div_compartment_sampler` forms frusta by sampling
          the segment radius at each compartment boundary
        * `div_compartment_integrator` computes the compartment
          areas and volumes exactly by summing all frustra
          in the intersection of the segment and the compartmnet
          span.
    
    * Extrae linked at execution time
    
    * cleaning project
    
    * Complex compartments
    
    * Use divided compartments to determine FVM coefficients.
    * Pick correct control volume in FVM from sgement position (avoids
      off-by-half error.)
    * Add colour override functionality to tsplot: `--colour` option.
    * Add const accessor for cell soma.
    * Source formatting, comments in `math.hpp`
    * Fix `range_view`: was using incorrectly named type trait.
    * Add unit test for `range_view`.
    * Allow points of discontinuity to be omitted from L-infinity norm
      calculations.
    * Add `-d, --min-dt` option to `validate.exe` to control time
      step in validation convergence tests.
    * Add validation test: confirm divided compartment policy does
      not effect results on simple frustrum dendrites.
    * Change default max compartments on validation tests to 100
      (ad hoc observed convergence limit at dt circa 0.001 ms;
      finder spatial division would required much finer dt.)
    * Make NEURON validation data generation scripts use CVODE by
      default, and with `secondorder=2` when non-zero `dt` is given.
    
    * Remove division policy type parameter.
    
    * Use only `div_compartment_integrator` for compartmentalization in
      `fvm_multicell`. The policy will later be moved to a backend
      policy class.
    * For now, disable validation tests that test different division
      policies (see above).
    * Tweak comments and remove redundant `using`, following comments
      on PR#54.
    
    * Minor twicks and corrections
    Ivanmartinezperez authored and bcumming committed Nov 4, 2016
    Configuration menu
    Copy the full SHA
    0ded25a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cd4d9ae View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2016

  1. WIP

    bcumming committed Nov 9, 2016
    Configuration menu
    Copy the full SHA
    e74720b View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2016

  1. backend refactoring

    bcumming committed Nov 10, 2016
    Configuration menu
    Copy the full SHA
    b11990f View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2016

  1. WIP

    bcumming committed Nov 11, 2016
    Configuration menu
    Copy the full SHA
    bb14d18 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1584bf3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    46427e6 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2016

  1. clean up gpu branch changes

    * streamline CMake
      * list of external libaries to link against CMake is concatenated in
        `EXTERNAL_LIBRARIES` variable
      * UNWIND_STACK is enabled by default if the libunwind package can be found
    * stack trace printer
      * optionally prints with color
      * takes the executable to perform address translation as command line argument
    * added documentation to c++, in particular some comments in fvm_multicell.hpp to
      explain some steps in more detail.
    bcumming committed Nov 14, 2016
    Configuration menu
    Copy the full SHA
    7751058 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2b2b310 View commit details
    Browse the repository at this point in the history
  3. final clean up for PR #45

    bcumming committed Nov 14, 2016
    Configuration menu
    Copy the full SHA
    5825543 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    faf1a41 View commit details
    Browse the repository at this point in the history
  5. Tiny typo fix

    Sam Yates committed Nov 14, 2016
    Configuration menu
    Copy the full SHA
    6cf11d3 View commit details
    Browse the repository at this point in the history