1. 25 Aug, 2015 4 commits
  2. 31 Jul, 2015 7 commits
  3. 30 Jul, 2015 7 commits
  4. 29 Jul, 2015 7 commits
  5. 28 Jul, 2015 8 commits
    • Kenneth Moreland's avatar
      DataSet now holds DynamicCellSet instead of smart_ptr<CellSet> · b8febd1c
      Kenneth Moreland authored
      The Invoke of the topology dispatcher is also changed to expect a
      concrete cell set (which the DynamicCellSet is automatically cast to)
      rather than a connectivity structure. The dispatcher calls the
      GetNodeToCellConnectivity method for you. (That is currently the only
      one supported.)
      b8febd1c
    • Kenneth Moreland's avatar
      7d5fc75d
    • Robert Maynard's avatar
      Make detecting if we are cuda 3+ gpu running cuda 2 code faster. · d9fd702b
      Robert Maynard authored
      The original implementing tried to run 2^31 kernels and detect a
      launch failure to determine this use-case. The issue with this approach
      is that on a cuda 3+ gpu, this would take multiple seconds and cause
      the gpu to terminate the kernel when opengl was also loaded.
      d9fd702b
    • Kenneth Moreland's avatar
      Fix warnings about implicit conversions in MSVC. · be045d7a
      Kenneth Moreland authored
      These occur in the TBB device adapter code.
      be045d7a
    • Kenneth Moreland's avatar
      Use default iterator difference type for IteratorFromArrayPortal · 514253e1
      Kenneth Moreland authored
      Previously, IteratorFromArrayPortal was declaring its difference_type
      to be vtkm::Id. Although this is allowed, there is code that assumes
      that iterators have a difference_type that is ptrdiff_t or something
      similar. This change makes the difference_type the default for the
      boost iterator facade, which should be the type other code that\
      neglects to check expects.
      514253e1
    • Will Usher's avatar
      Merge topic 'improve-benchmark-statistics' · eab098b8
      Will Usher authored and Kitware Robot's avatar Kitware Robot committed
      e982ebe4
      
       Measurement and general improvements to the benchmark suite
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !102
      eab098b8
    • Will Usher's avatar
      Measurement and general improvements to the benchmark suite · e982ebe4
      Will Usher authored
      - A warm up run is done and not timed to allow for any allocation of
        room for output data without accounting for it in the run times.
      Previously this time spent allocating memory would be included in the
      time we measured for the benchmark.
      
      - Benchmarks are run multiple times and we then compute some statistics
        about the run time of the benchmark to give a better picture of the
      expected run time of the function. To this end we run the benchmark
      either 500 times or for 1.5s, whichever comes sooner (though these are
      easily changeable). We then perform outlier limiting by Winsorising the
      data (similar to how Rust's benchmarking library works) and print out
      the median, mean, min and max run times along with the median absolute
      deviation and standard deviation.
      
      - Because benchmarks are run many times they can now perform some
        initial setup in the constructor, eg. to fill some test input data
      array with values to let the main benchmark loop run faster.
      
      - To allow for benchmarks to have members of the data type being
        benchmarked the struct must now be templated on this type, leading to
      a bit of awkwardness. I've worked around this by adding the
      `VTKM_MAKE_BENCHMARK` and `VTKM_RUN_BENCHMARK` macros, the make
      benchmark macro generates a struct that has an `operator()` templated on
      the value type which will construct and return the benchmark functor
      templated on that type. The run macro will then use this generated
      struct to run the benchmark functor on the type list passed. You can
      also pass arguments to the benchmark functor's constructor through the
      make macro however this makes things more awkward because the name of
      the MakeBench struct must be different for each variation of constructor
      arguments (for example see `BenchLowerBounds`).
      
      - Added a short comment on how to add benchmarks in
        `vtkm/benchmarking/Benchmarker.h` as the new system is a bit different
      from how the tests work.
      
      - You can now pass an extra argument when running the benchmark suite to
        only benchmark specific functions, eg. `Benchmarks_TBB
      BenchmarkDeviceAdapter ScanInclusive Sort` will only benchmark
      ScanInclusive and Sort. Running without any extra arguments will run all
      the benchmarks as before.
      e982ebe4
    • Kenneth Moreland's avatar
      Prevent warning about divide by zero. · b270438f
      Kenneth Moreland authored
      The test_equal method compares the ratio of the two values to decide if
      they are close enough. Although there is a previous check to make sure
      that neither value is too close to zero, the MSVC sometimes gives a
      warning because it cannot trace the flow of the check. Add another
      conditional (that will never actually be executed) to check a second time
      that we never divide by 0.
      b270438f
  6. 27 Jul, 2015 7 commits
    • Kenneth Moreland's avatar
      Created DynamicCellSet · 6b68666d
      Kenneth Moreland authored
      The DynamicCellSet will be used in place of the pointer to a CellSet
      in a DataSet. This will prevent us from having to cast it all the time
      and also remove reliance on boost smart_ptr.
      6b68666d
    • Kenneth Moreland's avatar
      Merge branch 'msvc-array-handle-fail' into 'master' · 53d66977
      Kenneth Moreland authored
      MSVC ArrayHandle fail
      
      Fix the fact that UnitTestArrayHandle is failing on the Windows dashboards. Also fix some of the MSVC warnings.
      
      See merge request !101
      53d66977
    • Kenneth Moreland's avatar
      Fix ArrayHandle test on MSVC · b90b1132
      Kenneth Moreland authored
      The test was creating a large array on the stack, and this caused a
      problem on Windows for some reason. Instead of putting the array on
      the stack, use an std::vector. Also reduced the size of the array
      used. It seemed unnecessarily large.
      
      Also re-enabled the tests where VTK-m allocates its own ArrayHandle
      data.
      b90b1132
    • Kenneth Moreland's avatar
      Fix various MSVC warnings. · 85a2545c
      Kenneth Moreland authored
      Most warnings had to do with implicit type conversions and some on
      treating an integer (actually a pointer) as a boolean.
      85a2545c
    • Kenneth Moreland's avatar
      Merge branch 'conventions-on-data-set' into 'master' · 8d3dbe35
      Kenneth Moreland authored
      Conform DataSet classes to coding practices better
      
      The most common changes were making class members uppercase and spelled
      out, adding "this->" whenever a class member is used, and declare
      functions and members with export macros. Also fixed some uses of int
      (instead of vtkm::Id or something similar) and a bit of indentation. I
      also sprinkled some const goodness over the code.
      
      It should be noted that I had about a week delay between first making
      these changes and checking them in. In the mean time Sujin also made
      some similar changes, so there might be some repetative changes.
      
      See merge request !100
      8d3dbe35
    • Kenneth Moreland's avatar
      Correct use of GetPortalControl vs GetPortalConstControl · 7b6fe9c1
      Kenneth Moreland authored
      ArrayHandle::GetPortalControl should only be used when the array is
      going to be modified. Using it on a const ArrayHandle should be a
      compiler error (although some compilers are not always giving an error).
      Also, GetPortalControl has a side effect where any data in the excution
      environment gets wiped out (because it might change), which can lead to
      inefficiencies when used unnecessarily.
      7b6fe9c1
    • Kenneth Moreland's avatar
      Conform DataSet classes to coding practices better · 19db32f0
      Kenneth Moreland authored
      The most common changes were making class members uppercase and spelled
      out, adding "this->" whenever a class member is used, and declare
      functions and members with export macros. Also fixed some uses of int
      (instead of vtkm::Id or something similar) and a bit of indentation. I
      also sprinkled some const goodness over the code.
      
      It should be noted that I had about a week delay between first making
      these changes and checking them in. In the mean time Sujin also made
      some similar changes, so there might be some repetative changes.
      19db32f0