Skip to content

Add TBB specialization of Unique

Allison Vacanti requested to merge allisonvacanti/vtk-m:173_tbb_unique into master

Compare to https://gitlab.kitware.com/snippets/22 for before/after on the same hardware.

Speedup Warn serial parallel Benchmark (Type)
24.503 0.018110 +- 0.000609 0.000739 +- 0.000048 Unique on 2097152 values with 104857 valid values (vtkm::Float32)
12.919 0.018693 +- 0.000851 0.001447 +- 0.000068 Unique on 2097152 values with 104857 valid values (vtkm::Float64)
27.641 0.018692 +- 0.001039 0.000676 +- 0.000047 Unique on 2097152 values with 104857 valid values (vtkm::Int32)
14.216 0.020456 +- 0.001712 0.001439 +- 0.000061 Unique on 2097152 values with 104857 valid values (vtkm::Int64)
26.814 0.018265 +- 0.000430 0.000681 +- 0.000056 Unique on 2097152 values with 104857 valid values (vtkm::UInt32)
8.878 0.024577 +- 0.000495 0.002768 +- 0.000094 Unique on 2097152 values with 104857 valid values (vtkm::Vec< vtkm::Float32, 4 >)
5.938 0.024053 +- 0.000404 0.004051 +- 0.000107 Unique on 2097152 values with 104857 valid values (vtkm::Vec< vtkm::Float64, 3 >)
13.520 0.019666 +- 0.000696 0.001455 +- 0.000060 Unique on 2097152 values with 104857 valid values (vtkm::Vec< vtkm::Int32, 2 >)
19.829 0.016344 +- 0.000267 0.000824 +- 0.000063 Unique on 2097152 values with 209715 valid values (vtkm::Float32)
10.406 0.017350 +- 0.000268 0.001667 +- 0.000053 Unique on 2097152 values with 209715 valid values (vtkm::Float64)
22.183 0.016299 +- 0.000257 0.000735 +- 0.000047 Unique on 2097152 values with 209715 valid values (vtkm::Int32)
10.538 0.017487 +- 0.000273 0.001659 +- 0.000044 Unique on 2097152 values with 209715 valid values (vtkm::Int64)
22.127 0.016321 +- 0.000235 0.000738 +- 0.000050 Unique on 2097152 values with 209715 valid values (vtkm::UInt32)
7.612 0.025637 +- 0.000376 0.003368 +- 0.000101 Unique on 2097152 values with 209715 valid values (vtkm::Vec< vtkm::Float32, 4 >)
4.976 0.025348 +- 0.000388 0.005094 +- 0.000127 Unique on 2097152 values with 209715 valid values (vtkm::Vec< vtkm::Float64, 3 >)
10.812 0.018154 +- 0.000275 0.001679 +- 0.000057 Unique on 2097152 values with 209715 valid values (vtkm::Vec< vtkm::Int32, 2 >)
33.934 0.013079 +- 0.000198 0.000385 +- 0.000016 Unique on 2097152 values with 256 valid values (vtkm::UInt8)
15.980 0.015916 +- 0.000388 0.000996 +- 0.000065 Unique on 2097152 values with 256 valid values (vtkm::Vec< vtkm::UInt8, 4 >)
18.578 0.016631 +- 0.000288 0.000895 +- 0.000054 Unique on 2097152 values with 314572 valid values (vtkm::Float32)
9.320 0.017868 +- 0.000377 0.001917 +- 0.000053 Unique on 2097152 values with 314572 valid values (vtkm::Float64)
20.566 0.016428 +- 0.000423 0.000799 +- 0.000052 Unique on 2097152 values with 314572 valid values (vtkm::Int32)
9.168 0.017580 +- 0.000274 0.001917 +- 0.000064 Unique on 2097152 values with 314572 valid values (vtkm::Int64)
21.868 0.017377 +- 0.002413 0.000795 +- 0.000051 Unique on 2097152 values with 314572 valid values (vtkm::UInt32)
6.145 0.024931 +- 0.000381 0.004057 +- 0.000108 Unique on 2097152 values with 314572 valid values (vtkm::Vec< vtkm::Float32, 4 >)
4.004 0.025597 +- 0.000766 0.006393 +- 0.000240 Unique on 2097152 values with 314572 valid values (vtkm::Vec< vtkm::Float64, 3 >)
9.581 0.018470 +- 0.000478 0.001928 +- 0.000061 Unique on 2097152 values with 314572 valid values (vtkm::Vec< vtkm::Int32, 2 >)
17.938 0.017328 +- 0.001134 0.000966 +- 0.000055 Unique on 2097152 values with 419430 valid values (vtkm::Float32)
8.139 0.017859 +- 0.000879 0.002194 +- 0.000075 Unique on 2097152 values with 419430 valid values (vtkm::Float64)
18.263 0.016442 +- 0.000311 0.000900 +- 0.000060 Unique on 2097152 values with 419430 valid values (vtkm::Int32)
8.022 0.017565 +- 0.000435 0.002190 +- 0.000079 Unique on 2097152 values with 419430 valid values (vtkm::Int64)
18.560 0.016644 +- 0.000657 0.000897 +- 0.000064 Unique on 2097152 values with 419430 valid values (vtkm::UInt32)
5.211 0.024959 +- 0.000613 0.004790 +- 0.000118 Unique on 2097152 values with 419430 valid values (vtkm::Vec< vtkm::Float32, 4 >)
3.569 ! 0.026259 +- 0.000721 0.007358 +- 0.000204 Unique on 2097152 values with 419430 valid values (vtkm::Vec< vtkm::Float64, 3 >)
8.252 0.018180 +- 0.000284 0.002203 +- 0.000082 Unique on 2097152 values with 419430 valid values (vtkm::Vec< vtkm::Int32, 2 >)
16.386 0.016531 +- 0.000256 0.001009 +- 0.000072 Unique on 2097152 values with 524288 valid values (vtkm::Float32)
7.171 0.017939 +- 0.000403 0.002502 +- 0.000107 Unique on 2097152 values with 524288 valid values (vtkm::Float64)
15.700 0.016448 +- 0.000380 0.001048 +- 0.000133 Unique on 2097152 values with 524288 valid values (vtkm::Int32)
7.118 0.017946 +- 0.000225 0.002521 +- 0.000124 Unique on 2097152 values with 524288 valid values (vtkm::Int64)
15.611 0.016461 +- 0.000477 0.001054 +- 0.000106 Unique on 2097152 values with 524288 valid values (vtkm::UInt32)
4.516 0.025201 +- 0.000375 0.005580 +- 0.000204 Unique on 2097152 values with 524288 valid values (vtkm::Vec< vtkm::Float32, 4 >)
3.206 ! 0.027617 +- 0.001170 0.008615 +- 0.000281 Unique on 2097152 values with 524288 valid values (vtkm::Vec< vtkm::Float64, 3 >)
7.248 0.018813 +- 0.000277 0.002596 +- 0.000160 Unique on 2097152 values with 524288 valid values (vtkm::Vec< vtkm::Int32, 2 >)
13.754 0.016490 +- 0.000612 0.001199 +- 0.000202 Unique on 2097152 values with 629145 valid values (vtkm::Float32)
6.358 0.018611 +- 0.000833 0.002927 +- 0.000127 Unique on 2097152 values with 629145 valid values (vtkm::Float64)
15.244 0.016071 +- 0.000180 0.001054 +- 0.000080 Unique on 2097152 values with 629145 valid values (vtkm::Int32)
6.069 0.017787 +- 0.000241 0.002931 +- 0.000130 Unique on 2097152 values with 629145 valid values (vtkm::Int64)
15.488 0.016412 +- 0.000547 0.001060 +- 0.000085 Unique on 2097152 values with 629145 valid values (vtkm::UInt32)
3.963 0.025861 +- 0.001131 0.006525 +- 0.000264 Unique on 2097152 values with 629145 valid values (vtkm::Vec< vtkm::Float32, 4 >)
2.593 !! 0.029036 +- 0.001471 0.011197 +- 0.000509 Unique on 2097152 values with 629145 valid values (vtkm::Vec< vtkm::Float64, 3 >)
6.295 0.018700 +- 0.000353 0.002971 +- 0.000154 Unique on 2097152 values with 629145 valid values (vtkm::Vec< vtkm::Int32, 2 >)

Merge request reports