1. 30 Jun, 2020 1 commit
    • Jordan Lewis's avatar
      colexec: use Get methods on native type slices · 49780f3f
      Jordan Lewis authored
      Also, add //gcassert:inline assertions on all Get methods but the
      DatumVec ones and the gcassert linter, to prove that all of these Get
      methods are inlined.
      
      Here are some benchmarks. I didn't run them all, because I believe that
      the guaranteed inlining proven by gcassert implies that any benchmark
      differences must be due to "binary layout" or other ghosts.
      
      ```
      Distinct/Ordered/hasNulls=false/newTupleProbability=0.010/rows=65536/cols=2/ordCols=2-24     468µs ± 0%     462µs ± 0%  -1.26%  (p=0.000 n=10+10)
      
      name                                                                                      old speed      new speed      delta
      Distinct/Ordered/hasNulls=false/newTupleProbability=0.010/rows=65536/cols=2/ordCols=2-24  2.24GB/s ± 0%  2.27GB/s ± 0%  +1.28%  (p=0.000 n=10+10)
      
      CastOp/useSel=true/hasNulls=true/int_to_float-24      5.18µs ± 2%    4.60µs ± 1%  -11.21%  (p=0.000 n=9+9)
      CastOp/useSel=true/hasNulls=false/int_to_float-24     1.06µs ± 7%    1.03µs ± 5%     ~     (p=0.101 n=10+10)
      CastOp/useSel=false/hasNulls=true/int_to_float-24     5.33µs ± 1%    5.47µs ± 2%   +2.53%  (p=0.000 n=9+10)
      CastOp/useSel=false/hasNulls=false/int_to_float-24    1.08µs ± 0%    1.08µs ± 0%     ~     (p=0.136 n=10+10)
      
      name                                                old speed      new speed      delta
      CastOp/useSel=true/hasNulls=true/int_to_float-24    1.58GB/s ± 2%  1.78GB/s ± 1%  +12.62%  (p=0.000 n=9+9)
      CastOp/useSel=true/hasNulls=false/int_to_float-24   7.73GB/s ± 7%  7.93GB/s ± 5%     ~     (p=0.089 n=10+10)
      CastOp/useSel=false/hasNulls=true/int_to_float-24   1.54GB/s ± 1%  1.50GB/s ± 2%   -2.46%  (p=0.000 n=9+10)
      CastOp/useSel=false/hasNulls=false/int_to_float-24  7.60GB/s ± 0%  7.59GB/s ± 0%     ~     (p=0.143 n=10+10)
      ```
      
      Release note: None
      49780f3f
  2. 26 Jun, 2020 1 commit