Skip to content

Enabling k-binary search for GPU-use #52

@AWbosman

Description

@AWbosman

Background

In the original work proposing robustness distributions, we introduced an adapted version of binary search called k-binary search (k-bin).
The motivation behind k-bin was to allow verification queries to run in parallel and exchange information between nodes, improving efficiency.

However, after extensive testing, we were unable to get k-bin to function correctly on GPU. As a result, later work reverted to using standard binary search, and k-bin is currently not available in VERONA.

Problem

The main challenge we faced was GPU communication:

  • When one GPU node finished a verification query, its results needed to be communicated to other nodes.
  • If the information was relevant, the other nodes’ queries had to be terminated early.
  • This early termination led to lag and various bugs that we could not resolve at the time.

Because of these issues, GPU execution of k-bin was abandoned.

Proposal

It would be valuable to reintroduce k-binary search with proper GPU support.
Specifically, this would involve:

  • Enabling GPU nodes to exchange information efficiently.
  • Ensuring safe and lag-free termination of ongoing queries when a result makes them redundant.

The relevant part of the codebase is:
robustness_experiment_box/epsilon_value_estimator

Who Might Be Interested

This issue may be best suited for someone with experience in GPU communication, distributed systems, or PyTorch multiprocessing.

Benefits

  • Restores functionality from the original robustness distribution proposal.
  • Improves efficiency of epsilon estimation compared to plain binary search.
  • Opens up new experimental possibilities within VERONA.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions