Skip to content

[I2V] How to achieve 19.5 FPS Inference speed? #3

Description

@nanwanj

Summary

We tested Helios-Distilled I2V inference speed on an H100 using scripts/inference/helios-distilled_i2v.sh, and the throughput we observe is lower than the claimed ~19.5 FPS.

Cuda version: 12.8

Environment

  • GPU: NVIDIA H100
  • Script: scripts/inference/helios-distilled_i2v.sh
  • Model: Helios-Distilled (same as the script default)
  • FlashAttention: log shows Flash Attn 3 is installed

Log snippet:

bash scripts/inference/helios-distilled_i2v.sh 
Fetching 4 files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 70197.56it/s]
Download complete: : 0.00B [00:00, ?B/s]              Flash Attn 3 is installed!

What we changed

We kept the script unchanged except:

  1. Adjusted --num_frames for benchmarking (33, 99 and 264)
  2. Updated pyramid_num_inference_steps_list from 2 2 2 to 1 1 1

Benchmark results

  • 33 frames: 2.75 s → ~12 FPS
  • 99 frames: 6 s → ~16.5 FPS
  • 264 frames: 14.2 s → ~18.6 FPS

Expected behavior

Based on the reported numbers, we expected to get close to ~19.5 FPS on H100.
Based on demo video, 33 frames inference time should be around ~1.68 seconds on H100.

Actual behavior

Best throughput we see is ~18.6 FPS, which is still below the claimed ~19.5 FPS, even with --enable_compile and FlashAttention3 installed.

33 frames inference time from our testing is around ~2.75 seconds

Request / Question

Could you please guide us on how to improve I2V inference latency / throughput on H100 to match the reported performance?

Specifically, any recommendations on:

  • required flags / settings to hit the reported FPS (compile mode, attention backend, bf16/fp16, SDPA/xformers, etc.)
  • whether the claimed ~19.5 FPS assumes specific settings (resolution, num_frames, steps, stage2, batch size, warmup iterations, etc.)
  • common bottlenecks or profiling tips for Helios I2V

Output of pip freeze is also attached.

installed.txt

Thank you!

The way we measure inference time is to update "infer_helios.py" and remove the comments at line 514-516 & line 548- 549, which is same to your demo video.

Helios/infer_helios.py

Lines 514 to 516 in c2f2ea5

# import time
# for _ in range(20):
# start_time = time.time()

Helios/infer_helios.py

Lines 548 to 549 in c2f2ea5

# elapsed_time = time.time() - start_time
# print(f"Inference time: {elapsed_time:.2f} seconds ({elapsed_time/60:.2f} minutes)")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions