- 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
103 lines
2.6 KiB
Python
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',
|
|
]
|