* Refactor kernel launch materialization
* [Refactor] Improve git commit ID retrieval and version labeling logic
* Enhance the get_git_commit_id function to check for the existence of the .git directory before attempting to retrieve the commit hash, ensuring more robust behavior.
* Update the dynamic_metadata function to conditionally set the NO_VERSION_LABEL environment variable based on the presence of the .git directory.
* Modify the GitHub Actions workflow to unset the NO_VERSION_LABEL environment variable during the installation and version check of the package, allowing for accurate version labeling in SDist builds.
* [Refactor] Update WebGPU backend registration
* Import the WebGPU package to automatically register its pass pipeline.
* Remove the explicit registration of the WebGPU pass pipeline, streamlining the backend setup process.
* [Feature] Add T.gemm support for CPU target
- Add GemmInst::kCPU enum and TargetIsCPU() helper for CPU target detection
- Add CPU branch in getGemmInst() for both GemmNode and GemmPyNode
- Add CPU early return in GemmNode::Lower() and InferLayout() (gemm_v1 no-op)
- Add GemmScalar: triple-loop scalar gemm implementation (gemm_v2 path)
- Add CPU dispatch in GemmPy._get_implementation_class()
- Add pytest tests for codegen and correctness (NN/TN/NT/TT, multiple sizes)
* rename kCPU to kScalar for consistency with existing GemmInst naming