Skip to content

Enable EFA-backed Presto GPU workers - #412

Open
devavret wants to merge 11 commits into
mainfrom
devavret/g7e48-local-nvme-ucx-q18
Open

Enable EFA-backed Presto GPU workers#412
devavret wants to merge 11 commits into
mainfrom
devavret/g7e48-local-nvme-ucx-q18

Conversation

@devavret

@devavret devavret commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • bundle checksum-pinned UCX 1.22.0 into native GPU worker images, including explicit CUDA and EFA support
  • verify the UCX version, library origin, plugins, transports, and requested devices during image build and worker startup
  • add an opt-in --ucx-efa launch mode with host networking, EFA device access, and per-worker UCX_NET_DEVICES
  • keep EFA-specific UCXX settings in an opt-in configuration overlay and preserve CPU-only worker behavior
  • enable native cuDF exchange only for GPU benchmark queries, after metadata discovery
  • add a benchmark-independent g7e.48xlarge example that discovers GPU/EFA topology and starts an eight-worker cluster

Motivation

Presto GPU workers need explicit EFA/SRD device and network configuration to move CUDA exchange buffers between GPUs that cannot use PCIe peer access. Keeping UCX inside the GPU worker image removes the need for a host UCX checkout or mounted runtime and prevents mismatches between build headers, linked libraries, and dynamically loaded plugins.

@devavret
devavret requested a review from a team as a code owner September 2, 2026 09:30
@devavret
devavret requested a review from bdice September 2, 2026 09:30
@copy-pr-bot

copy-pr-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@devavret

devavret commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test

@copy-pr-bot

copy-pr-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

/ok to test

@devavret, there was an error processing your request: E1

See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/1/

@devavret

devavret commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test d88d903

Comment thread presto/docker/native_build.dockerfile Outdated
Comment thread presto/docker/native_build.dockerfile
Comment thread presto/scripts/start_presto_helper_parse_args.sh Outdated
Comment thread presto/docker/config/template/overrides/gpu/etc_worker/config_native.properties Outdated
# - /dev/infiniband/uverbs9
{% if ucx_efa %}
devices:
- /dev/infiniband/rdma_cm

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This check requires the four-card topology used by the benchmark, but the runner does not explain how that topology must be provisioned. A default g7e.48xlarge launch typically assigns an EFA interface only to network-card index 0. Interfaces for indices 1–3 must be explicitly requested through the launch configuration/CLI. Such an instance reaches this check with only uverbs0 and reports a missing device without explaining the prerequisite.

Since this script is presented as a reproducer, could we add either:

  • exact AWS CLI/launch-template instructions for creating one EFA interface on each network-card index 0–3
  • OR, a link to those instructions plus an actionable error such as: "Expected four EFA network cards; launch the instance with EFA interfaces assigned to NetworkCardIndex 0–3."

We can keep provisioning outside the benchmark script, but document and validate it here.

Comment thread presto/scripts/run_g7e48_local_nvme_q18.sh Outdated
@devavret
devavret requested a review from kjmph September 3, 2026 08:51
@devavret

devavret commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

@kjmph Thanks for the quick review. can you please take another look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants