Files
iGavroche-rocm-ninodes/rocm_nodes/constants.py
T
iGavroche c989a48aab v2.1.0: LTX/z-image VAE support, temporal tiling, fp16 default, APU tuning
- LTX Video VAE detection (128 channels, 32x spatial compression, 8x temporal)
- z-image / z-image-turbo pixel-space VAE passthrough (no decode needed)
- fp16 default on all AMD GPUs (Strix Halo, RDNA 2/3, CDNA)
- Per-architecture tuning with automatic detection (gfx1151/gfx1100/gfx1030/CDNA)
- Temporal tiling for long videos: overlapping chunks with linear blend,
  zero frame loss, progress bar in UI (disabled by default)
- Chunked IO bypass for LTX — fixes OOM with max_split_size_mb caps
- Fixed memory estimation: correct for all dims (including 5D temporal) and dtypes
- APU-aware memory management (psutil for unified memory on Strix Halo)
- Tile size floor for high-compression VAEs (min 64 latent pixels)
- 25 unit tests covering all new features
2026-06-12 15:54:56 -04:00

103 lines
2.6 KiB
Python

"""
Constants and configuration for ROCM Ninodes.
Shared constants used across the package, including:
- Default tile sizes
- Memory configuration
- Architecture-specific settings
"""
# Default tile sizes for VAE operations
DEFAULT_TILE_SIZE = 768
MIN_TILE_SIZE = 256
MAX_TILE_SIZE = 2048
DEFAULT_TILE_OVERLAP = 96
MIN_LATENT_TILE_SIZE = 64
MIN_LATENT_OVERLAP = 4
# Memory configuration
DEFAULT_MEMORY_SAFETY_GB = 2.0
MEMORY_MULTIPLIER_FP32 = 1.5
MEMORY_MULTIPLIER_FP8 = 0.5
MEMORY_MULTIPLIER_INT8 = 0.25
MEMORY_MULTIPLIER_INT4 = 0.25
# Architecture-specific settings
# gfx1151 (Strix Halo) — APU with unified memory
GFX1151_TILE_SIZE_RANGE = (768, 2048)
GFX1151_PREFERRED_PRECISION = "fp16"
GFX1151_BATCH_CAP = 8
GFX1151_IS_APU = True
# gfx1100-1102 (RDNA 3 — discrete)
GFX1100_TILE_SIZE_RANGE = (768, 2048)
GFX1100_PREFERRED_PRECISION = "fp16"
GFX1100_BATCH_CAP = 16
GFX1100_IS_APU = False
# gfx1030-1032 (RDNA 2 — discrete)
GFX1030_TILE_SIZE_RANGE = (512, 1536)
GFX1030_PREFERRED_PRECISION = "fp16"
GFX1030_BATCH_CAP = 8
GFX1030_IS_APU = False
# gfx90a, gfx942 (CDNA — discrete)
CDNA_TILE_SIZE_RANGE = (768, 2048)
CDNA_PREFERRED_PRECISION = "bf16"
CDNA_BATCH_CAP = 32
CDNA_IS_APU = False
# Default fallback for unknown AMD architectures
DEFAULT_AMD_TILE_SIZE_RANGE = (512, 1024)
DEFAULT_AMD_PREFERRED_PRECISION = "fp16"
DEFAULT_AMD_BATCH_CAP = 4
DEFAULT_AMD_IS_APU = False
# Quantization detection
QUANTIZATION_TYPES = ["fp8", "int8", "int4", "bf16", "fp32"]
# Performance targets
FLUX_TARGET_TIME_SECONDS = 110
WAN_TARGET_TIME_SECONDS = 93
VAE_DECODE_TARGET_SECONDS = 10
CHECKPOINT_LOAD_TARGET_SECONDS = 30
__all__ = [
'DEFAULT_TILE_SIZE',
'MIN_TILE_SIZE',
'MAX_TILE_SIZE',
'DEFAULT_TILE_OVERLAP',
'MIN_LATENT_TILE_SIZE',
'MIN_LATENT_OVERLAP',
'DEFAULT_MEMORY_SAFETY_GB',
'MEMORY_MULTIPLIER_FP32',
'MEMORY_MULTIPLIER_FP8',
'MEMORY_MULTIPLIER_INT8',
'MEMORY_MULTIPLIER_INT4',
'GFX1151_TILE_SIZE_RANGE',
'GFX1151_PREFERRED_PRECISION',
'GFX1151_BATCH_CAP',
'GFX1151_IS_APU',
'GFX1100_TILE_SIZE_RANGE',
'GFX1100_PREFERRED_PRECISION',
'GFX1100_BATCH_CAP',
'GFX1100_IS_APU',
'GFX1030_TILE_SIZE_RANGE',
'GFX1030_PREFERRED_PRECISION',
'GFX1030_BATCH_CAP',
'GFX1030_IS_APU',
'CDNA_TILE_SIZE_RANGE',
'CDNA_PREFERRED_PRECISION',
'CDNA_BATCH_CAP',
'CDNA_IS_APU',
'DEFAULT_AMD_TILE_SIZE_RANGE',
'DEFAULT_AMD_PREFERRED_PRECISION',
'DEFAULT_AMD_BATCH_CAP',
'DEFAULT_AMD_IS_APU',
'QUANTIZATION_TYPES',
'FLUX_TARGET_TIME_SECONDS',
'WAN_TARGET_TIME_SECONDS',
'VAE_DECODE_TARGET_SECONDS',
'CHECKPOINT_LOAD_TARGET_SECONDS',
]