1. 20 Jun, 2018 1 commit
    • Shreeraj Jadhav's avatar
      constexpr construction for Vec classes · 94749655
      Shreeraj Jadhav authored
      Vec class objects can now be constructed during compile-time
      as constant expressions by calling Vec( T, ... ) constructors
      or through brace-initialization.
      Constant expression using fill constructor and nested vectors
      of sizes greater than 4 are not supported yet.
      Changes made to WrappedOperators.h for resolving overload
      ambiguities in Vec construction and typecasting.
      Appropriate test cases were added to UnitTestTypes.cxx.
      Addresses issue #199.
  2. 05 Jun, 2018 1 commit
  3. 02 Feb, 2018 1 commit
  4. 20 Sep, 2017 1 commit
    • Kenneth Moreland's avatar
      Update copyright for Sandia · c3a3184d
      Kenneth Moreland authored
      Sandia National Laboratories recently changed management from the
      Sandia Corporation to the National Technology & Engineering Solutions
      of Sandia, LLC (NTESS). The copyright statements need to be updated
  5. 17 Aug, 2017 1 commit
  6. 25 May, 2017 1 commit
  7. 18 May, 2017 1 commit
  8. 16 Nov, 2016 1 commit
    • Kenneth Moreland's avatar
      Remove exports for header-only functions/methods · fdaccc22
      Kenneth Moreland authored
      Change the VTKM_CONT_EXPORT to VTKM_CONT. (Likewise for EXEC and
      EXEC_CONT.) Remove the inline from these macros so that they can be
      applied to everything, including implementations in a library.
      Because inline is not declared in these modifies, you have to add the
      keyword to functions and methods where the implementation is not inlined
      in the class.
  9. 31 Aug, 2016 1 commit
  10. 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.
  11. 03 Nov, 2015 1 commit
  12. 03 Sep, 2015 1 commit
    • Robert Maynard's avatar
      Make thrust use fast paths when doing sort and scan. · 72450e87
      Robert Maynard authored
      By introducing our own custom thrust execution policy we can make sure
      to hit the fastest code paths in thrust for the sort operation. This makes
      sure that for UInt32,Int32, and Float32 we use the radix sort from thrust
      which offers a 2x to 3x speed improvement over the merge sort implementation.
      Secondly by telling thrust that our BinaryOperators are commutative we
      make sure that we get the fastest code paths when executing Inclusive
      and Exclusive Scan
      Benchmark 'Radix Sort on 1048576 random values vtkm::Int32' results:
        median = 0.0117049s
        median abs dev = 0.00324614s
        mean = 0.0167615s
        std dev = 0.00786269s
        min = 0.00845875s
        max = 0.0389063s
      Benchmark 'Radix Sort on 1048576 random values vtkm::Float32' results:
        median = 0.0234463s
        median abs dev = 0.000317249s
        mean = 0.021452s
        std dev = 0.00470307s
        min = 0.011255s
        max = 0.0250643s
      Benchmark 'Merge Sort on 1048576 random values vtkm::Int32' results:
        median = 0.0310486s
        median abs dev = 0.000182129s
        mean = 0.0286914s
        std dev = 0.00634102s
        min = 0.0116225s
        max = 0.0317379s
      Benchmark 'Merge Sort on 1048576 random values vtkm::Float32' results:
        median = 0.0310617s
        median abs dev = 0.000193583s
        mean = 0.0295779s
        std dev = 0.00491531s
        min = 0.0147257s
        max = 0.032307s
  13. 17 Aug, 2015 1 commit
    • Robert Maynard's avatar
      Workaround thrust 1.8 inclusive scan issue. · 157d8efe
      Robert Maynard authored
      Starting in thrust 1.8 the implementation of scan inclusive inside
      thrust became highly optimized by using parallel task groups. This
      new implementation has a bug that only exists when using custom
      binary operators, large size arrays, release mode, and no
      debugger or mem-checker attached.
      While I have submitted the issue to thrust, we need to be able
      to work around the existing issue. The solution I have chosen is
      to mark all vtkm::exec::cuda::interal::WrappedBinaryOperators
      as being commutative as far as thrust is concerened. To make
      sure we don't get any unexpected behavior I have also had
      to create WrappedBinaryPredicate so that we don't mark any
      predicate as commutative.
  14. 13 Aug, 2015 2 commits
  15. 06 Jul, 2015 1 commit
    • Kenneth Moreland's avatar
      Fix compiler directives for icc · 4fc36267
      Kenneth Moreland authored
      The Intel icc compiler tries to pretend it is gcc, but it sometimes
      behaves differently. Add more explicit checks for what compiler is
      being used.
  16. 16 Jun, 2015 2 commits
  17. 12 Jun, 2015 1 commit
    • Robert Maynard's avatar
      Generalize the support for zip handles inside the cuda backend. · 2a2159b1
      Robert Maynard authored
      Instead of having a single specialization for sort and zip handles,
      we know handle any fancy handles being passed to the cuda device adapter.
      This was done by reworking how we represent fancy iterators inside thrust,
      and instead of using a transform iterator + counting iterator we just use
      a iterator_facade.