Skip to content

Bump candle rev to 7de0d9fd (picks up moe_gemm_wmma rename to avoid symbol collision)#34

Merged
lukekim merged 1 commit into
spiceaifrom
lukim/bump-candle-moe-rename
Apr 17, 2026
Merged

Bump candle rev to 7de0d9fd (picks up moe_gemm_wmma rename to avoid symbol collision)#34
lukekim merged 1 commit into
spiceaifrom
lukim/bump-candle-moe-rename

Conversation

@lukekim
Copy link
Copy Markdown

@lukekim lukekim commented Apr 17, 2026

Summary

Bumps the workspace candle rev from fab4da81 to 7de0d9fd to pick up spiceai/candle#13, which renames candle-kernels' moe_gemm_wmmacandle_moe_gemm_wmma.

Why

candle-kernels and mistralrs-core each independently ship an extern "C" void moe_gemm_wmma kernel (both adapted from guoqingbao/attention.rs but with diverged signatures and implementations). When both crates are linked into the same binary — e.g. spiced --features cuda,models — the static archives collide:

ld.lld: error: duplicate symbol: moe_gemm_wmma
  >>> defined in libmoe.a (from candle-kernels)
  >>> defined in libmistralrscuda.a (from mistralrs-core)

Renaming the candle side is the minimum-risk fix (3 mechanical edits, no semantic change). mistralrs-core keeps its moe_gemm_wmma / moe_gemm_wmma_transposed call sites untouched.

Scope

  • Only Cargo.toml: 5 candle crate revs bumped in lock-step.
  • No mistralrs-core source changes needed — our own kernel and its callers are unaffected.

Verification

Verified spiced --features cuda,models links cleanly on CUDA 12.6 / sm_90 (H100) with the matching spiceai/spiceai pin bump.

…ollision)

Picks up spiceai/candle#13 which renames candle-kernels' moe_gemm_wmma
-> candle_moe_gemm_wmma so it no longer collides with mistralrs-core's
identically-named but semantically divergent kernel when both crates
are linked together (e.g. in spiced --features cuda,models).
@lukekim lukekim self-assigned this Apr 17, 2026
@github-actions
Copy link
Copy Markdown

Code Metrics Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Language              Files        Lines         Code     Comments       Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 C Header                  5          305          210           52           43
 CSS                       2         1181         1036           34          111
 CUDA                     59        17706        13869         1637         2200
 Dockerfile                1           39           22            8            9
 HTML                      2          235          197           14           24
 JavaScript               16         3580         2702          486          392
 Jinja2                    7          694          656            5           33
 JSON                     21          409          406            0            3
 Makefile                  1            6            5            0            1
 Metal Shading Lan|       31        11647         9007         1064         1576
 PowerShell                1          300          227           30           43
 Python                  125         8316         6808          412         1096
 Shell                     2          485          329           95           61
 Plain Text                3         3723            0         2413         1310
 TOML                     27         1290         1124           35          131
 YAML                      3           25           23            2            0
─────────────────────────────────────────────────────────────────────────────────
 Jupyter Notebooks         3          122           83           23           16
 |- Markdown               1           60           30           22            8
 |- Python                 1          122          113            1            8
 (Total)                              304          226           46           32
─────────────────────────────────────────────────────────────────────────────────
 Markdown                105        11197            0         8067         3130
 |- BASH                  72          934          691          149           94
 |- Dockerfile             1            1            1            0            0
 |- JSON                  20          719          719            0            0
 |- PowerShell             3            3            3            0            0
 |- Python                23         1038          862           60          116
 |- Rust                  51         2048         1718           54          276
 |- TOML                   6          207          164            0           43
 |- YAML                   2            9            8            1            0
 (Total)                            16156         4166         8331         3659
─────────────────────────────────────────────────────────────────────────────────
 Rust                    547       236072       207590         6565        21917
 |- Markdown             361         8962          452         7385         1125
 (Total)                           245034       208042        13950        23042
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Total                   961       311435       249055        28614        33766
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

lukekim added a commit to spiceai/spiceai that referenced this pull request Apr 17, 2026
Resolves ld.lld duplicate-symbol link error when building spiced with
cuda + models features:

    ld.lld: error: duplicate symbol: moe_gemm_wmma
      >>> defined in libmoe.a (candle-kernels)
      >>> defined in libmistralrscuda.a (mistralrs-core)

Three coordinated fork PRs:
 - spiceai/candle#13: rename moe_gemm_wmma -> candle_moe_gemm_wmma
   in candle-kernels so it no longer collides with mistralrs-core's
   identically-named but semantically divergent kernel.
 - spiceai/mistral.rs#34: bump candle rev to 7de0d9fd.
 - spiceai/text-embeddings-inference#22: bump candle rev to 7de0d9fd.

New workspace pins:
 - candle           fab4da81 -> 7de0d9fd
 - mistralrs        9b475876 -> b93f7600
 - text-embeddings  b958dca5 -> bd66a55d

Verified with make install-cuda on CUDA 12.6 / sm_90 (H100): links
and installs cleanly in 18m51s.
@lukekim lukekim merged commit fd24100 into spiceai Apr 17, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants