1. 22 Apr, 2019 1 commit
    • Robert Maynard's avatar
      For VTK-m libs all includes of DeviceAdapterTagCuda happen from cuda files · ff687016
      Robert Maynard authored
      It is very easy to cause ODR violations with DeviceAdapterTagCuda.
      If you include that header from a C++ file and a CUDA file inside
      the same program we an ODR violation. The reasons is that the C++
      versions will say the tag is invalid, and the CUDA will say the
      tag is valid.
      
      The solution to this is that any compilation unit that includes
      DeviceAdapterTagCuda from a version of VTK-m that has CUDA enabled
      must be invoked by the cuda compiler.
      ff687016
  2. 18 Apr, 2019 1 commit
    • Robert Maynard's avatar
      Remove DeviceAdapterError as it isn't needed any more. · d8cc067c
      Robert Maynard authored
      Fixes #277
      
      DeviceAdapterError existed to make sure that the default device adapter
      template was being handled properly. Since the default device adapter doesn't
      exist, and nothing is templated over it we can now remove DeviceAdapterError.
      d8cc067c
  3. 17 Apr, 2019 1 commit
  4. 15 Apr, 2019 1 commit
  5. 11 Apr, 2019 2 commits
    • Robert Maynard's avatar
    • Allison Vacanti's avatar
      Add support for BitFields. · 56cc5c3d
      Allison Vacanti authored
      BitFields are:
      - Stored in memory using a contiguous buffer of bits.
      - Accessible via portals, a la ArrayHandle.
      - Portals operate on individual bits or words.
      - Operations may be atomic for safe use from concurrent kernels.
      
      The new BitFieldToUnorderedSet device algorithm produces an ArrayHandle
      containing the indices of all set bits, in no particular order.
      
      The new AtomicInterface classes provide an abstraction into bitwise
      atomic operations across control and execution environments and are used
      to implement the BitPortals.
      56cc5c3d
  6. 10 Apr, 2019 2 commits
  7. 09 Apr, 2019 1 commit
  8. 04 Apr, 2019 1 commit
  9. 03 Apr, 2019 1 commit
  10. 01 Apr, 2019 2 commits
  11. 28 Mar, 2019 1 commit
  12. 26 Mar, 2019 2 commits
    • Kenneth Moreland's avatar
      Wrap third party optionparser.h in vtkm/cont/internal/OptionParser.h · 7237c468
      Kenneth Moreland authored
      Previously we just took the optionparser.h file and stuck it right in
      our source code. That was problematic for a variety of reasons.
      
      1. It incorrectly assigned our license to external code.
      2. It made lots of unnecessary changes to the original source (like
      reformatting).
      3. It made it near impossible to track patches we make and updates to
      the original software.
      
      Instead, use the third-party system to track changes to optionparser.h
      in a different repository and then pull that into ours.
      7237c468
    • Robert Maynard's avatar
      Redesign RuntimeDeviceTracker and RuntimeDeviceInformation · 838cb433
      Robert Maynard authored
      The RuntimeDeviceTracker had grown organically to handle multiple
      different roles inside VTK-m. Now that we have device tags
      that can be passed around at runtime, large portions of
      the RuntimeDeviceTracker API aren't needed.
      
      Additionally the RuntimeDeviceTracker had a dependency on knowing
      the names of each device, and this wasn't possible
      as that information was part of its self. Now we have moved that
      information into RuntimeDeviceInformation and have broken
      the recursion.
      838cb433
  13. 25 Mar, 2019 1 commit
    • Allison Vacanti's avatar
      Modify VariantAH::AsVirtual to cast to new ValueType if needed. · e1f5c4dd
      Allison Vacanti authored
      E.g:
      
      ```
          ArrayHandle<Float64> doubleArray;
          VariantArrayHandle varHandle{doubleArray};
          ArrayHandleVirtual<Float32> = varHandle.AsVirtual<Float32>();
      ```
      
      If there is a loss in range and/or precision, a warning is logged. If
      the ValueTypes are Vecs with mismatched widths, an ErrorBadType is thrown.
      Internally, an ArrayHandleCast is used between the VariantArrayHandle's
      stored array and the ArrayHandleVirtual.
      e1f5c4dd
  14. 22 Mar, 2019 1 commit
  15. 19 Mar, 2019 1 commit
  16. 15 Mar, 2019 1 commit
  17. 01 Mar, 2019 1 commit
  18. 28 Feb, 2019 1 commit
  19. 20 Feb, 2019 1 commit
    • Kenneth Moreland's avatar
      Add specialized operators for ArrayPortalValueReference · 1ca55ac3
      Kenneth Moreland authored
      The ArrayPortalValueReference is supposed to behave just like the value
      it encapsulates and does so by automatically converting to the base type
      when necessary. However, when it is possible to convert that to
      something else, it is possible to get errors about ambiguous overloads.
      To avoid these, add specialized versions of the operators to specify
      which ones should be used.
      
      Also consolidated the CUDA version of an ArrayPortalValueReference to the
      standard one. The two implementations were equivalent and we would like
      changes to apply to both.
      1ca55ac3
  20. 17 Jan, 2019 1 commit
  21. 16 Jan, 2019 1 commit
  22. 09 Jan, 2019 1 commit
  23. 07 Jan, 2019 1 commit
  24. 27 Dec, 2018 8 commits
  25. 13 Dec, 2018 1 commit
    • Allison Vacanti's avatar
      Add vtkm::cont::Initialize. · cdb1f568
      Allison Vacanti authored
      Also
      - Renamed vtkm::cont::make_DeviceAdapterIdFromName to just overload
        make_DeviceAdapterId.
      - Refactored CMake logic for unit tests
        - Since we're now querying the device tracker for the names, they
          cannot be all caps.
      - Updated usages of InitLogging to use Initialize instead.
      - Added changelog.
      cdb1f568
  26. 23 Nov, 2018 1 commit
    • Haocheng LIU's avatar
      Merge worklet testing executables into a device dependent shared library · 88596366
      Haocheng LIU authored
      VTK-m has been updated to replace old per device worklet testing executables with a device
      dependent shared library so that it's able to accept a device adapter
      at runtime.
      Meanwhile, it updates the testing infrastructure APIs. vtkm::cont::testing::Run
      function would call ForceDevice when needed and if users need the device
      adapter info at runtime, RunOnDevice function would pass the adapter into the functor.
      
      Optional Parser is bumped from 1.3 to 1.7.
      88596366
  27. 23 Oct, 2018 1 commit
  28. 15 Oct, 2018 1 commit
  29. 04 Oct, 2018 1 commit