• Stefy Lanza (nextime / spora )'s avatar
    embeddings(bge-m3): vectorize sparse/colbert aggregation on GPU · 59f6ebe0
    Stefy Lanza (nextime / spora ) authored
    The per-token Python loops that built the sparse {token_id: weight} dict and
    the colbert vector lists held the GIL between forward passes, starving the GPU
    (steady ~10-36% util with brief bursts). Replace them with GPU tensor ops:
    
    - sparse: relu(sparse_linear·h) with invalid positions (specials/padding)
      zeroed, then max-pooled per token id via a single scatter_reduce(amax) into a
      (B, vocab) matrix; per-row nonzero extraction is O(nnz), not O(L).
    - colbert: one C-level tolist per row over its valid tokens (vs per-token).
    - valid mask computed on-device via torch.isin.
    
    Output byte-matches the previous per-token logic (dense/sparse/colbert within
    1e-4). Benefit grows with batch size, so larger client batches translate to GPU
    work instead of Python-loop time.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01Mw2KQiswmD69T45fTfjKwW
    59f6ebe0
Name
Last commit
Last update
codai Loading commit data...
docs Loading commit data...
packaging Loading commit data...
samples Loading commit data...
tests Loading commit data...
tools Loading commit data...
.dockerignore Loading commit data...
.gitignore Loading commit data...
AI.PROMPT Loading commit data...
CODERAI_API_DOCUMENTATION.md Loading commit data...
CoderAI.gif Loading commit data...
DISTRIBUTION.md Loading commit data...
LICENSE.md Loading commit data...
MULTIMODAL_CAPABILITIES.md Loading commit data...
MULTIMODAL_UI_EXAMPLES.md Loading commit data...
README.md Loading commit data...
REQUEST-geoclip-embeddings.md Loading commit data...
REQUEST-vpr-embeddings.md Loading commit data...
amdgpu-coredump-05000.bin Loading commit data...
build-oci.sh Loading commit data...
build.ps1 Loading commit data...
build.sh Loading commit data...
coderai Loading commit data...
coderai-broker-implementation-reference.md Loading commit data...
coderai-integration.md Loading commit data...
commands Loading commit data...
osxbuild.sh Loading commit data...
package-oci.sh Loading commit data...
package-tarball.sh Loading commit data...
requirements-nvidia.txt Loading commit data...
requirements-ocr-paddle.txt Loading commit data...
requirements-ocr.txt Loading commit data...
requirements-surya.txt Loading commit data...
requirements-vllm.txt Loading commit data...
requirements-vulkan.txt Loading commit data...
requirements.txt Loading commit data...
run-oci.sh Loading commit data...
smoke-test-oci.sh Loading commit data...
todo.md Loading commit data...
video_editor.config.json Loading commit data...