SShortSingh.
Back to feed

Pure-C TTS engine gains Metal and CUDA GPU backends with major speed gains

0
·3 views

Developers have added two optional GPU backends — Apple Metal and NVIDIA CUDA — to qwen3-tts, a pure-C inference engine for the Qwen3-TTS model, while keeping the default CPU path unchanged. On Apple Silicon, the Metal backend reduced the 0.6B model's real-time factor from 1.5 to 0.60 on an M1 and 0.36 on an M2 Pro, with streaming first-audio latency of 314 milliseconds. The CUDA backend achieved an RTF of 0.44 on an RTX 4060-class GPU, scaling down to approximately 0.12 on an RTX 4090. Key performance gains came from keeping weights, KV cache, and activations resident on the device and encoding full decode steps into a single command buffer rather than offloading individual operations. Server-side request batching further improved throughput by roughly 2.8x on Metal and 3.35x on CUDA, allowing multiple concurrent users to be served in approximately the time of a single request.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

WeTool Offers 15 Browser-Based Dev Utilities With No Login or Data Upload

A developer has shared WeTool, a free browser-based platform offering 15 commonly used development utilities including a JSON formatter, JWT parser, regex tester, and SQL formatter. The tool requires no login and processes everything locally in the browser, meaning no data is sent to any backend server. Users can verify this themselves by checking the Network tab in their browser's DevTools. The platform supports 15 languages, setting it apart from most similar toolboxes that are English-only. WeTool is available at wetool.site and is actively being updated with additional tools.

0
ProgrammingDEV Community ·

How one helpdesk team tackled AI-powered support ticket deduplication

A team building an internal helpdesk identified duplicate support tickets as their users' top pain point, with a single incident routinely generating multiple unrelated-looking reports across chat, email, and error trackers. Simple keyword-matching failed because related tickets like 'login is broken' and a TokenExpiredError share no common words, while embedding-based clustering risked confidently merging unrelated issues. The team also ruled out vector-clustering pipelines due to concerns about precision, particularly the costly risk of incorrectly merging distinct incidents. Their eventual solution was a deliberately minimal approach using a low-temperature AI triage model that compares each new ticket against a short list of open tickets, with optional code context for disambiguation. The team acknowledged the problem remains only partly solved and openly invited feedback from others who have tackled similar deduplication challenges.

0
ProgrammingDEV Community ·

Why State Colocation Should Drive Frontend Architecture Decisions

A frontend architecture principle argues that application state should always live as close as possible to the components that consume it. In most codebases, state is defaulted to a global store regardless of whether it needs to be globally accessible. The correct approach distinguishes between component-level state, subtree-scoped context, and genuinely global state. Global stores should be reserved only for truly cross-cutting concerns such as authentication, locale, and theme. Treating state colocation as an architectural rule rather than a stylistic preference can significantly improve code clarity and maintainability.

0
ProgrammingDEV Community ·

AbortController: The Browser Tool That Prevents React Async Race Conditions

Frontend apps frequently suffer a hidden bug where outdated network requests resolve after newer ones, silently overwriting correct data with stale results — a classic race condition. AbortController, a browser-native API supported by all major browsers since 2018, provides a straightforward fix by allowing in-flight fetch requests to be cancelled on demand. In React, pairing AbortController with useEffect's cleanup function ensures that whenever a component unmounts or a dependency changes, any pending request is immediately aborted before it can update state. The implementation requires just three steps: creating a controller instance, passing its signal to the fetch call, and returning an abort call as the effect's cleanup. Failing to filter out the resulting AbortError is the most common mistake, as unhandled cancellations bubble up to error boundaries and trigger false failure alerts on every unmount.