Repository navigation
fix(whisper): rebuild the Linux HRX engine on glibc 2.28 for the manylinux SDK link - #822
Merged
Merged
Conversation
…linux SDK link libwhisper_npu.so from f4f9341/ef53ebca was built on Ubuntu 24.04 with GCC 13.3.0, so it needs glibc 2.32 and GLIBCXX 3.4.32 (the previous engine needed glibc 2.15). The SDK's manylinux_2_28 FLM job (glibc 2.28) fails linking flm against it on __libc_single_threaded@GLIBC_2.32 and std::ios_base_library_init()@GLIBCXX_3.4.32. Rebuilt the Linux HRX engine from FastFlowLM_IRON 315b9cab1 (the commit ef53ebc vendored) with gcc-toolset-13 (GCC 13.3.1 Red Hat) against the TheRock manylinux_2_28 image's glibc 2.28 sysroot and the pinned HRX package flm-hrx-amdxdna-v2026.10.13. Same engine and kernel sources, same weights; only the toolchain and sysroot change. Requirements of the new library: glibc 2.15, GLIBCXX 3.4.21, CXXABI 1.3.11, the same as the manylinux-built engines before de3b12a. It passes FLM_DLL/check_abi.sh (glibc 2.28, GLIBCXX 3.4.25, CXXABI 1.3.11). NEEDED libraries, the exported std:: pattern and the single __*_finite import match a manylinux-built engine from 40af693; all 18 hrx_* symbols it imports resolve in the pinned libhrx.so. No aiebu banner. Tested on a Strix NPU: HRX flm built from main with this library, the CI ASR test (asr_test.py --platform linux-hrx, required prompt, verbose_json and timestamp_rules): all checks pass. Pooled error rate 7.50% (expected 22.63%), 0 runaways, verbose_json 8/8, timestamp_rules 2/2, prompt 2/2, window_tail 4/4, language 13/13, quiet_log 1/1; the Gemma chat transcriptions also pass. Only the Linux HRX engine changes. The other Linux HRX engines rebuilt in de3b12a and the Linux XRT engines (glibc 2.38) still need the same rebuild; see AMD-ROCm-Internal/FastFlowLM_IRON#74 for a guard that catches this. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
tawei-amd
pushed a commit
to tawei-amd/FastFlowLM
that referenced
this pull request
Oct 22, 2026
de3b12a rebuilt every HRX engine on Ubuntu 24.04 / GCC 13.3, so the libs needed glibc 2.32-2.38 and GLIBCXX 3.4.32. The SDK's manylinux_2_28 FLM job (glibc 2.28) fails linking flm against them (__libc_single_threaded@GLIBC_2.32, ios_base_library_init@GLIBCXX_3.4.32, log2@GLIBC_2.29). ROCm#822 fixed libwhisper_npu.so; this does the other 27. Rebuilt from FastFlowLM_IRON main (2d9079194) with gcc-toolset-13 against the ghcr.io/rocm/therock_build_manylinux_x86_64 sysroot, the same toolchain as FLM_DLL/build_manylinux.sh, and the pinned HRX package flm-hrx-amdxdna-v2026.10.13. Newer libstdc++ symbols come from libstdc++_nonshared.a, so the libs now need at most glibc 2.22, GLIBCXX 3.4.21 and CXXABI 1.3.11. Checked with FLM_DLL/check_abi.sh (ceiling glibc 2.28 / GLIBCXX 3.4.25 / CXXABI 1.3.11): 28/28 pass. Tested on the NPU with Gemma4-E2B and Gemma4-12B (gemma4e/gemma4_12b engines plus q4nx, dequant, gemm, mha, lm_head). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The SDK's manylinux_2_28 FLM job (glibc 2.28) fails linking
flmagainstsrc/lib/hrx/libwhisper_npu.so:__libc_single_threaded@GLIBC_2.32std::ios_base_library_init()@GLIBCXX_3.4.32The library from #812 (rebuilt in #794) was built on Ubuntu 24.04 with GCC 13.3.0, so it needs glibc 2.32 and GLIBCXX 3.4.32. The previous engine needed glibc 2.15.
Change
Rebuilt the Linux HRX
libwhisper_npu.sofrom FastFlowLM_IRON315b9cab1(the commit #812 vendored) with gcc-toolset-13 (GCC 13.3.1 Red Hat) against the TheRock manylinux_2_28 image's glibc 2.28 sysroot and the pinned HRX package (flm-hrx-amdxdna-v2026.10.13). Same engine and kernel sources, same weights; only the toolchain and sysroot change.It passes
FLM_DLL/check_abi.shfrom AMD-ROCm-Internal/FastFlowLM_IRON#74 (ceilings glibc 2.28, GLIBCXX 3.4.25, CXXABI 1.3.11). NEEDED libraries, the exportedstd::pattern and the single__*_finiteimport match a manylinux-built engine from40af6930. All 18hrx_*symbols it imports resolve in the pinnedlibhrx.so. No aiebu banner.Testing
On a Strix NPU: an HRX
flmbuilt from main with this library, running the CI ASR test (asr_test.py --platform linux-hrx, requiredprompt verbose_json timestamp_rules). All checks pass.verbose_json8/8,timestamp_rules2/2,prompt2/2,window_tail4/4,language13/13,quiet_log1/1.The SDK's manylinux_2_28 link itself was not run here.
Not in this PR
de3b12a9need glibc 2.32 to 2.38 (log2@GLIBC_2.29in qwen3 and gemma) and need the same rebuild.-march=nativeis in the engine Makefiles, so the library is tuned to the build host's CPU (AVX-512), as in the previous builds.🤖 Generated with Claude Code