You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit dc9f53d
Browse filesBrowse the repository at this point in the historyBrowse files
Fix compile errors from merging Dataset Specs (#2858)
Semantic conflicts between this PR and #2858 broke the build after the
upstream/main merge:
- detail/pq.cuh: vpq_build returns device_vpq_dataset<StoreMathT, IdxT>
again. Our edit to the adjacent signature line had taken precedence in
the conflict resolution and dropped #2858's return-type fix.
- pq.hpp: the dataset branch of make_device_pq_dataset uses the new
dataset_view API (data_const_view(), dim()) instead of the removed
view()/stride()/extent()/data_handle(). Doc example uses view().
- tiered_index.cu: call cagra::detail::convert_standard_to_padded_index,
since the public declaration was removed by this PR.
- test_float_uint32_t.cu: as_dataset_view() -> view().
Accepts either a row-major mdspan with `value_type`, `extent`, `stride`, and `data_handle` (same pattern as `cuvs::neighbors::make_device_padded_dataset`), or any cuVS dense dataset / dataset view exposing `data_const_view`, in which case the logical `dim()` is quantized and the row padding is skipped. The rows may be device-accessible or host-resident. Device-accessible rows (device, managed or pinned) with tight row-major storage (logical stride equals dimension) are passed through to training as they are; a wider row pitch triggers a contiguous dense copy first. Host-resident rows are subsampled for training and encoded in bounded batches, so the dense dataset is never staged on the device in full; they must be tightly packed. Empty sources are rejected. The element type must be `float`, `half`, `int8_t` or `uint8_t`.
270
+
Accepts either a row-major mdspan with `value_type`, `extent`, `stride`, and `data_handle` (same pattern as `cuvs::neighbors::make_device_padded_dataset`), or any cuVS dense dataset / dataset view exposing `data_const_view` and `dim`, in which case the logical `dim()` is quantized and the row padding is skipped. The rows may be device-accessible or host-resident. Device-accessible rows (device, managed or pinned) with tight row-major storage (logical stride equals dimension) are passed through to training as they are; a wider row pitch triggers a contiguous dense copy first. Host-resident rows are subsampled for training and encoded in bounded batches, so the dense dataset is never staged on the device in full; they must be tightly packed. Empty sources are rejected. The element type must be `float`, `half`, `int8_t` or `uint8_t`.
271
271
272
272
Typical **CAGRA** usage: build the graph on dense vectors, then attach PQ for search (metric must remain `L2Expanded` for this path). Train PQ from the same CAGRA-padded device layout you used for graph build, keep the `device_vpq_dataset` alive, and call `cagra::update_dataset` with a non-owning view.
0 commit comments