1. 21 Oct, 2015 4 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
    • 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
  2. 19 Oct, 2015 1 commit
    • Kenneth Moreland's avatar
      Merge branch 'shared-indices-in-fetch' into 'master' · 17732106
      Kenneth Moreland authored
      Change Fetches to use ThreadIndices instead of Invocation.
      
      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.
      
      See merge request !233
      17732106
  3. 14 Oct, 2015 5 commits
  4. 13 Oct, 2015 2 commits
  5. 12 Oct, 2015 3 commits
  6. 09 Oct, 2015 2 commits
  7. 08 Oct, 2015 17 commits
  8. 07 Oct, 2015 5 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
      Merge branch 'cuda-problems' into 'master' · e5bcc17d
      Kenneth Moreland authored
      Do not use _Pragma in code blocks with CUDA
      
      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.
      
      See merge request !234
      e5bcc17d
    • 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
    • Robert Maynard's avatar
      Merge topic 'cellset_permutation' · fbddba74
      Robert Maynard authored
      9a8809f9 Add CellSetPermutation which allows custom iteration over a cell set.
      66f6db5a IsWriteableArrayHandle now can tell if an array handle can be written too
      20f3fb50 Update VertexClustering to use vtkm::cont::CellSetSingleType.
      154896b7 Extend the test for DataSetSingleType.
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !228
      fbddba74
    • Robert Maynard's avatar
      Merge topic 'retrieve-cell-set-by-name' · 75c2dac7
      Robert Maynard authored
      a9425ac1 In DataSet, add the ability to retrieve a cell set by name.
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Acked-by: Robert Maynard's avatarRobert Maynard <robert.maynard@kitware.com>
      Merge-request: !215
      75c2dac7
  9. 02 Oct, 2015 1 commit