1. 17 Apr, 2019 5 commits
    • Robert Maynard's avatar
      UnitTestBoundingIntervalHierarchy handles systems under load better · 9c292007
      Robert Maynard authored
      The UnitTestBoundingIntervalHierarchy has historically had problems
      when the machine is already under-load when the algorithm is executed.
      By limiting the number of openMP threads the test uses we can
      reduce the amount of CPU time slicing that this test causes.
      9c292007
    • Robert Maynard's avatar
    • Robert Maynard's avatar
      GameOfLife example always uses the proper device adapter · d3d66a33
      Robert Maynard authored
      Previously the example would only time using the serial device
      adapter, which wouldn't work when the user explicitly specified
      a device on the command line.
      d3d66a33
    • Robert Maynard's avatar
      Merge topic 'support_cuda_scheduling_parameters_via_runtime' · 6c5c197a
      Robert Maynard authored
      047b6465 VTK-m now provides better scheduling parameters controls
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Acked-by: Kenneth Moreland's avatarKenneth Moreland <kmorel@sandia.gov>
      Merge-request: !1643
      6c5c197a
    • Robert Maynard's avatar
      VTK-m now provides better scheduling parameters controls · 047b6465
      Robert Maynard authored
      VTK-m now offers a more GPU aware set of defaults for kernel scheduling.
      When VTK-m first launches a kernel we do system introspection and determine
      what GPU's are on the machine and than match this information to a preset
      table of values. The implementation is designed in a way that allows for
      VTK-m to offer both specific presets for a given GPU ( V100 ) or for
      an entire generation of cards ( Pascal ).
      
      Currently VTK-m offers preset tables for the following GPU's:
      - Tesla V100
      - Tesla P100
      
      If the hardware doesn't match a specific GPU card we than try to find the
      nearest know hardware generation and use those defaults. Currently we offer
      defaults for
      - Older than Pascal Hardware
      - Pascal Hardware
      - Volta+ Hardware
      
      Some users have workloads that don't align with the defaults provided by
      VTK-m. When that is the cause, it is possible to override the defaults
      by binding a custom function to `vtkm::cont::cuda::InitScheduleParameters`.
      As shown below:
      
      ```cpp
        ScheduleParameters CustomScheduleValues(char const* name,
                                                int major,
                                                int minor,
                                                int multiProcessorCount,
                                                int maxThreadsPerMultiProcessor,
                                                int maxThreadsPerBlock)
        {
      
          ScheduleParameters params  {
              64 * multiProcessorCount,  //1d blocks
              64,                        //1d threads per block
              64 * multiProcessorCount,  //2d blocks
              { 8, 8, 1 },               //2d threads per block
              64 * multiProcessorCount,  //3d blocks
              { 4, 4, 4 } };             //3d threads per block
          return params;
        }
        vtkm::cont::cuda::InitScheduleParameters(&CustomScheduleValues);
      ```
      047b6465
  2. 15 Apr, 2019 2 commits
  3. 12 Apr, 2019 4 commits
  4. 11 Apr, 2019 8 commits
  5. 10 Apr, 2019 10 commits
  6. 09 Apr, 2019 9 commits
  7. 08 Apr, 2019 2 commits
    • Sujin Philip's avatar
      Fix a bug in MakeTestDataset · 2bbf501c
      Sujin Philip authored
      In Make3DExplicitDataSetZoo, only 25 cells are added, but the variable `nCells`
      is set to 27.
      2bbf501c
    • Sujin Philip's avatar
      ArrayHandleVirtual bugfixes · dae779b9
      Sujin Philip authored
      After the change to `ArrayHandleVirtual` where it became a subclass of
      `vtkm::cont::ArrayHandle`, a few extra changes are required.
      
      1. Functions with `ArrayHandleVirtual` as parameters will not be callable
      with the superclass `ArrayHandle`. This is fixed by changing the argument
      types to the superclass.
      2. Add Serialization classes specializations for the superclass, as "is-a"
      relation is not considered for class template parameters.
      dae779b9