Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions vortex-cuda/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ Key files:
- `vortex-cuda/src/arrow/canonical.rs`: canonical-array export to `ArrowDeviceArray`.
- `vortex-test/e2e-cuda/src/lib.rs`: cuDF interop harness.

## CUDA file scans

Local pooled file reads use fixed 8 MiB chunks with concurrency 32. These are physical
file-read/H2D chunks, independent of logical row ranges or scan batch sizes.

## Building cuDF for Arrow Device interop

The `cudf-test-harness` repository provides prebuilt cuDF binaries for Arrow Device interop testing on
Expand Down
3 changes: 3 additions & 0 deletions vortex-cuda/ffi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ Use `vx_cuda_scan_path_arrow_device_stream` to read such a local file through pi
and receive an Arrow C Device stream. Reuse the same CUDA session across scans so the pinned buffer
pool and CUDA state are reused as well.

Pooled data reads use fixed 8 MiB chunks and concurrency 32;
scan row ranges and batch sizes are unchanged.

On Linux, use `vx_cuda_scan_path_arrow_device_stream_with_options` with
`vx_cuda_scan_options.flags = VX_CUDA_SCAN_FLAG_DIRECT_IO` to bypass the operating system page
cache for pooled data-plane reads. Footer and zone-map reads remain buffered on the host.
Expand Down
2 changes: 1 addition & 1 deletion vortex-cuda/src/pooled_read_at/file.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub const DEFAULT_FILE_CONCURRENCY: usize = 32;

// Physical segments can exceed the coalescing limit. Split their I/O, not their encoding,
// to limit blocking read sizes and start transfers before the whole segment is read.
const FILE_READ_CHUNK_BYTES: usize = 4 << 20;
const FILE_READ_CHUNK_BYTES: usize = 8 << 20;

/// Options controlling how [`PooledFileReadAt`] opens and reads a local file.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
Expand Down
2 changes: 1 addition & 1 deletion vortex-cuda/src/pooled_read_at/file/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ impl FileReadBackend for FakeFileReadBackend {
}

fn file_byte(offset: u64) -> u8 {
// Unlike a repeating u8 counter, this distinguishes adjacent 4 MiB chunks.
// Unlike a repeating u8 counter, this distinguishes adjacent read chunks.
(offset % 251) as u8
}

Expand Down
Loading