Skip to content

feat: route infiniop gemm through InfiniOps#1199

Open
voltjia wants to merge 2 commits into
mainfrom
refactor/infiniops-gemm-clean
Open

feat: route infiniop gemm through InfiniOps#1199
voltjia wants to merge 2 commits into
mainfrom
refactor/infiniops-gemm-clean

Conversation

@voltjia
Copy link
Copy Markdown
Collaborator

@voltjia voltjia commented Jun 4, 2026

Summary

This PR routes the existing infiniopGemm C API through the InfiniOps C++ operator API.

It is stacked on #1198 so the diff only contains the GEMM integration changes on top of submodules/InfiniOps.

Changes

  • Replace the infiniop GEMM descriptor/dispatch implementation with an adapter that calls infini::ops::Operator<infini::ops::Gemm>::Call(...)
  • Link infiniop against submodules/InfiniOps/build/src/libinfiniops.so
  • Add InfiniOps include/rpath wiring in xmake
  • Add CUDA 13 target include fallback for NVIDIA builds
  • Advance submodules/InfiniOps from 316ad6b0 to 9444f9c3 because 316ad6b0 fails to build libinfiniops.so with generated optional-parameter call instantiations

Verification

Verified on nvidia:

cmake -S submodules/InfiniOps -B submodules/InfiniOps/build \
  -DPython_EXECUTABLE=/home/huangjiacheng/.venv/bin/python \
  -DCMAKE_CUDA_COMPILER=/usr/local/cuda-13.0/bin/nvcc \
  -DWITH_CPU=ON -DWITH_NVIDIA=ON -DWITH_TORCH=ON \
  -DGENERATE_CPP_OPERATOR_API=OFF -DGENERATE_PYTHON_BINDINGS=OFF
cmake --build submodules/InfiniOps/build --target infiniops --parallel 8

PATH=/usr/local/cuda-13.0/bin:/home/huangjiacheng/.local/bin:$PATH \
  CUDA_HOME=/usr/local/cuda-13.0 \
  ~/.local/bin/xmake f -y --require=no --nv-gpu=y --cpu=y --cuda_arch=sm_80 --cu=/usr/local/cuda-13.0/bin/nvcc

PATH=/usr/local/cuda-13.0/bin:/home/huangjiacheng/.local/bin:$PATH \
  CUDA_HOME=/usr/local/cuda-13.0 \
  ~/.local/bin/xmake build --jobs=1 infiniop

Result:

build ok, spent 2.738s

Runtime smoke:

INFINI_ROOT=/tmp/infinicore-gemm-install \
LD_LIBRARY_PATH=/tmp/infinicore-gemm-install/lib:/tmp/infinicore-infiniops-gemm-clean/submodules/InfiniOps/build/src:/home/huangjiacheng/.venv/lib/python3.10/site-packages/torch/lib:$LD_LIBRARY_PATH \
/home/huangjiacheng/.venv/bin/python test/infiniop/gemm.py --nvidia --debug

Result:

Test passed!

Also verified ldd build/linux/x86_64/release/libinfiniop.so resolves libinfiniops.so from submodules/InfiniOps/build/src/libinfiniops.so.

Base automatically changed from issue-1194-add-infiniops-submodule to main June 4, 2026 08:08
@voltjia voltjia requested a review from a team June 4, 2026 08:08
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.

1 participant