1. 04 Dec, 2015 1 commit
  2. 02 Dec, 2015 1 commit
  3. 01 Dec, 2015 5 commits
  4. 25 Nov, 2015 1 commit
  5. 11 Nov, 2015 1 commit
  6. 10 Nov, 2015 1 commit
    • T.J. Corona's avatar
      Add support for bidirectional array transforms. · af32a21b
      T.J. Corona authored
      Array transforms can now be created with an inverse functor, allowing for
      casts back into the native array type. As a result, array transforms with
      both a functor and inverse functor defined can perform read and write
      operations. As an example, ArrayHandleCast now supports this operation. The
      original implementation of ArrayHandleCast (i.e. read only) has been renamed
      'ArrayHandleCastForInput'.
      af32a21b
  7. 09 Nov, 2015 1 commit
    • Robert Maynard's avatar
      Workaround inclusive_scan issues in thrust 1.8.X for complex value types. · b3687c6f
      Robert Maynard authored
      The original workaround for inclusive_scan bugs in thrust 1.8 only solved the
      issue for basic arithmetic types such as int, float, double. Now we go one
      step further and fix the problem for all types.
      
      The solution is to provide a proper implementation of destructive_accumulate_n
      and make sure it exists before any includes of thrust occur.
      b3687c6f
  8. 06 Nov, 2015 3 commits
    • Kenneth Moreland's avatar
      Fix issue with const types in Thrust array management · f7789f0e
      Kenneth Moreland authored
      Previously, there was a declaration ConstArrayPortalFromThrust<const T>
      in ArrayManagerExecutionThrustDevice. This proved problematic because
      values read from the array in the worklet were typed as const T rather
      than simply T. Any Vec or Matrix built from that type would then fail
      because they are not meant to work with a const value (which means they
      have to be set on construction and never changed.
      
      Instead, declare ConstArrayPortalFromThrust<T> and internally set all
      the Thrust pointers to have type const T. Also declare other thrust
      pointers used as method parameters to have const T rather than T. This
      should work as conversion from T to const T should be fine, but not the
      other way around.
      f7789f0e
    • Kenneth Moreland's avatar
      Change Isosurface algorithm to work with scatter counting · 5b54af54
      Kenneth Moreland authored
      Now that ScatterCounting is implemented, we can use that to implement a
      good part of the triangle generation in the isosurface algorithm. This
      changes the worklet from a basic map to a topology map, which also
      reduces a lot of code.
      5b54af54
    • Kenneth Moreland's avatar
      Handle unstable sort in test for cell-to-point connectivity. · 53d8e984
      Kenneth Moreland authored
      The parallel implementation in CellSetExplicit that builds cell-to-point
      connectivity from point-to-cell connectivity uses a parallel sort-by-
      key. The sort-by-key in the device adapter is not guaranteed to be
      stable, so values associated with a particular key can be in any order.
      The test for the result was expecting the connectivity array to be in a
      particular order. Change the test to allow any connectivity ordering
      that is still valid.
      53d8e984
  9. 04 Nov, 2015 2 commits
  10. 03 Nov, 2015 5 commits
  11. 02 Nov, 2015 6 commits
  12. 30 Oct, 2015 2 commits
  13. 26 Oct, 2015 2 commits
  14. 23 Oct, 2015 2 commits
  15. 22 Oct, 2015 2 commits
  16. 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
      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
      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
  17. 20 Oct, 2015 1 commit