Add TBB specialization of Unique
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 >) |