Conversation
Merging this PR will degrade performance by 15.59%
Performance Changes
Comparing Footnotes
|
c3d7434 to
6c1d7aa
Compare
860cc64 to
042394b
Compare
df8dbf5 to
862d814
Compare
|
@claude review please |
This comment was marked as resolved.
This comment was marked as resolved.
|
@claude i have addressed your main comments. please give another review. |
This comment was marked as resolved.
This comment was marked as resolved.
daf258f to
578d83d
Compare
|
@claude please review |
This comment was marked as resolved.
This comment was marked as resolved.
|
@claude PR is ready for another review |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
8648244 to
a9ce27f
Compare
There was a problem hiding this comment.
shall we add a few more of these with different types? e.g. string?
There was a problem hiding this comment.
Executing anything other than primitive would fail
| /// Number of lanes the patch indices and values have been split into. Each of the `n_chunks` | ||
| /// of 1024 values is split into `n_lanes` lanes horizontally, each lane having 1024 / n_lanes | ||
| /// values that might be patched. | ||
| pub(super) n_lanes: usize, |
There was a problem hiding this comment.
This I think we need to store incase we change the default ptype -> lane mapping in the future
There was a problem hiding this comment.
I think this kind of change would require new arrays. The data layout would change
There was a problem hiding this comment.
As long as you have the n_lanes saved you can always access the data without issue
| } | ||
|
|
||
| #[derive(Clone, prost::Message)] | ||
| pub struct PatchedMetadata { |
There was a problem hiding this comment.
I wonder if you can pack this into a u128?
There was a problem hiding this comment.
hm, is there a reason to do that over struct? can protobuf even encode u128?
There was a problem hiding this comment.
I mean using less and smaller fields
There was a problem hiding this comment.
I removed some fields and packed the rest into a single uint64 packed field
There was a problem hiding this comment.
Sorry @a10y this was on me. I was thinking that we can have 4 fields that total u128 in size. I don't think we need to do this manual packing
There was a problem hiding this comment.
reverted this the fields are now separated
|
@claude review please |
This comment was marked as resolved.
This comment was marked as resolved.
|
I'm pretty sure the CodSpeed results are just noise since the PatchedArray isn't wired into anything here |
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
|
Make sure when we wire this in we make it an unstable encoding |
vortex-file/src/strategy.rs
Outdated
| session.register(Delta); | ||
| session.register(FoR); | ||
| session.register(FSST); | ||
| session.register(Patched); |
There was a problem hiding this comment.
We should keep the old patches for a while and have this as an unstable_encoding
|
You will also need to replace with children (with with_slots) |
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
ad0eaa7 to
f3d9155
Compare
|
done |
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