1. 04 Nov, 2015 1 commit
  2. 03 Nov, 2015 1 commit
  3. 02 Nov, 2015 2 commits
  4. 30 Oct, 2015 2 commits
  5. 28 Oct, 2015 1 commit
  6. 26 Oct, 2015 6 commits
  7. 23 Oct, 2015 1 commit
  8. 22 Oct, 2015 5 commits
  9. 21 Oct, 2015 5 commits
    • Kenneth Moreland's avatar
      Add default constructors/destructors/assignment to CellSet classes · c7e9c1b6
      Kenneth Moreland authored
      The CellSet classes all exclusively work in the control environment.
      However, CUDA likes to add __device__ to constructors, destructors, and
      assignment operators it automatically adds. This in turn causes warnings
      about the __device__ function using host-only classes (like
      boost::shared_ptr). Solve this problem by adding explicit methods for
      all of these.
      c7e9c1b6
    • Kenneth Moreland's avatar
      Add default constructors/destructors/assignment to ArrayHandle classes · 65c22618
      Kenneth Moreland authored
      The ArrayHandle classes all exclusively work in the control environment.
      However, CUDA likes to add __device__ to constructors, destructors, and
      assignment operators it automatically adds. This in turn causes warnings
      about the __device__ function using host-only classes (like
      boost::shared_ptr). Solve this problem by adding explicit methods for
      all of these.
      
      Implemented this by wrapping up all these default objects in a macro.
      This also solved the problem of other constructors that are necessary
      for array handles such as a constructor that takes the base array
      handle.
      65c22618
    • Kenneth Moreland's avatar
      Fix nvcc warnings on MSVC · b861209a
      Kenneth Moreland authored
      There is a strange nvcc warning in CUDA 7.5 that sometimes happens on MSVC
      that causes it to emit a warning for an undefined method that is clearly
      defined. The CUDA development team is aware of the problem and is going
      to fix it, but these changes will work around the problem for now.
      
      Thanks to Tom Fogal from NVIDIA for these fixes.
      b861209a
    • Kenneth Moreland's avatar
    • Kenneth Moreland's avatar
      Explicitly add destructors and copy constructors to ArrayHandle classes · 7ff62d8d
      Kenneth Moreland authored
      Under CUDA, the default constructors and destructors created are exported
      as __host__ and __device__, which causes problems because they used a boost
      pointer that only works on the host. The explicit copy constructors and
      destructors do the same thing as the default ones except declared to only
      work on the host.
      7ff62d8d
  10. 20 Oct, 2015 1 commit
  11. 14 Oct, 2015 1 commit
  12. 13 Oct, 2015 1 commit
  13. 12 Oct, 2015 2 commits
  14. 09 Oct, 2015 1 commit
  15. 08 Oct, 2015 6 commits
  16. 07 Oct, 2015 2 commits
    • Kenneth Moreland's avatar
      Change Fetches to use ThreadIndices instead of Invocation. · 99ce66c6
      Kenneth Moreland authored
      Previously, all Fetch objects received an Invocation object in their
      Load and Store methods. The point of this was that it allowed the Fetch
      to get data from any of the execution objects. However, every Fetch
      either just got data directly from its associated execution object or
      else used a secondary execution object (the input domain) to get indices
      into their own execution object.
      
      This left two potential areas for improvement. First, pulling data out
      of the Invocation object was unnecessarily complicated. It would be much
      nicer to get data directly from the associated execution object. Second,
      when getting index information from the input domain, it was often the
      case that extra computations were necessary (particularly on structured
      cell sets). There was no way to share the index information among
      Fetches, and therefore the computations were replicated.
      
      This change removes the Invocation from the Fetch Load and Store.
      Instead, it passes the associated execution object and a new object type
      called the ThreadIndices. The ThreadIndices are customized for the input
      domain and therefore have all the information needed for a redirected
      lookup. It is also a thread-local object so it can cache computed
      indices and save on computation time.
      99ce66c6
    • Kenneth Moreland's avatar
      Do not use _Pragma in code blocks with CUDA · bfb26cf7
      Kenneth Moreland authored
      The current CUDA compiler is crashing when using _Pragma in code blocks,
      which were being used with clang on apple. Turn these off when compiling
      with CUDA.
      bfb26cf7
  17. 02 Oct, 2015 1 commit
  18. 01 Oct, 2015 1 commit