Skip to content

Upstream GGML patches and deprecate patched ggml. #66

@mmwillet

Description

@mmwillet

Initial discussion for this came up here and the current proposal, to upstream necessary operations directly to GGML or otherwise support them with custom operations and no longer require the patched version of ggml, represents the best long term outcome for TTS.cpp.

Doing so will allow TTS.cpp to reap the benefits of recent GGML updates and make compatibility with other GGML reliant technologies more seamless.

Our goal would be, as @tyrauber outlined, to upstream the following support to GGML:

Enhanced Conv Transpose 1D
Remove the p0 == 0 constraint and add support for non-zero padding. Maintain backward compatibility (existing calls with p0=0 work unchanged). This is the most critical blocker and affects multiple model types. The lack of full PyTorch/TensorFlow parity in GGML's convolution operations seems like a significant gap that would benefit the broader ecosystem.

This should also include support for non-zero output padding (which is straightforward to add).

Convolution Grouping Support
Add grouping parameter to convolution operations. Required by Kokoro and common in modern CNN architectures. Extend existing conv operations with optional grouping parameter.

Our requirement here would only be that the grouping parameter can be applied to convolutional transposition.

Enhanced Upscaling Operation
Extend ggml_upscale with multiple interpolation modes. Better PyTorch/TensorFlow parity, removes need for custom ggml_upscale_linear. Maybe nearest (existing), linear (1D sequences), bilinear, bicubic, trilinear, area, nearest-exact.

Additional modifications such as ggml_reciprocal, STFT, and iSTFT, would also be desirable but could initially be supported via custom map operations.

Please see the discussion linked above for posterity.

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions