Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
| pub(super) indices: BufferHandle, | ||
| /// patch values corresponding to the indices. The ptype is specified by `values_ptype`. | ||
| pub(super) values: BufferHandle, |
There was a problem hiding this comment.
I really think we should reconsider this.
This array (+ constant) should be used to replace the sparse array so I think we really want to store things other than PTypes?
There was a problem hiding this comment.
I'm not sure if this array is well-suited for non-primitive types. How many lanes does a List<Struct{u32,utf8}> have? I was tempted to actually put this into the vortex-fastlanes crate tbh
There was a problem hiding this comment.
i've updated to use child array for values, which should give us some flexibility to change things in the future
| return Ok(None); | ||
| } | ||
|
|
||
| let sliced = array.slice_chunks(chunk_start..chunk_stop)?; |
There was a problem hiding this comment.
you cannot do this
There was a problem hiding this comment.
why? this doesn't access buffers just slices
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
c3d7434 to
6c1d7aa
Compare
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
| AllOr::Some(indices) => { | ||
| let first = indices[0]; | ||
| let last = indices[indices.len() - 1]; | ||
|
|
||
| (first / 1024, last.div_ceil(1024)) |
There was a problem hiding this comment.
You really want to take(1) and on the slices iterator and backwards slice iterator here
| /// indices within a 1024-element chunk. The PType of these MUST be u16 | ||
| pub(super) indices: BufferHandle, |
There was a problem hiding this comment.
my feeling is that we want this to be an array too in-case we later do want to compress this array.
Summary
This is the first PR in a series addressing the PatchedArray RFC: vortex-data/rfcs#27
This PR adds a new
PatchedArrayarray variant, which is slated to only be used with FastLanes array types. The design is largely documented in the RFC, but brieflyWe are able to pushdown the following at reduce time:
There will be follow ups to add the wiring into CUDA and to update how BitPacked and ALP arrays are written.
Testing
There are unit tests for all of the reducers and kernels